c语言模拟随机抽签36选7。
*作者:wacs5
*邮箱:wacs5@126.com
*功能:36选7。
*************************************/
# include & ltdos.h & gt
# include & lttime.h & gt
# include & ltconio.h & gt
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltGraphics.h & gt
#定义N 36 /*36选择7*/
#定义M 7 /*36选择7*/
#定义TRY_N 10 /*10个实验*/
int main(void)
{
int data[TRY _ N][M];/*保存数据数组*/
int try_i,I,j;
int sameflag,temp
int gdriver=DETECT,gmode,errorcode
char info[10];
int order[N];
FILE * fp
fp=fopen("randdata.txt "," w ");
if (fp==NULL)
{
printf("文件打开错误:\ n按任意键退出:");
getch();
退出(-1);
}
init graph(& amp;g driver & amp;gmode,“”;/*初始化图形驱动程序*/
randomize();/*初始化随机数*/
for(I = 0;我& ltn;I++) /*将36个球放入数组*/
order[I]= I+1;
for(I = 0;我& ltn;I++)/*随机输出36个球*/
{
j = rand()%(N-I);
temp = order[N-I-1];
订单[N-I-1]=订单[j];
order[j]= temp;
}
for(I = 0;我& ltn;i++)
{
itoa(订单[i],信息,10);/*将数字转换为字符串*/
outtextxy((i%M)*40,(i/M)*20,info);/*图形界面输出*/
}
for(try _ I = 0;try _ i & ltTRY _ N;Try_i++) /* Try _ i实验*/
{
for(I = 0;我& ltm;I++) /*第I个数字*/
{
same flag = 1;/*因为选择的号码不能重复*/
While (sameflag==1) /*如果重复,一直计数到不重复为止*/
{
temp = rand()% N+1;/*生成1到36之间的随机数*/
for(j = 0;j & lt我;J++) /*与所选数字进行比较,看是否重复*/
If (temp==data[try_i][j]) /*如果重复,继续下一次提取*/
打破;
If (j==i) /*不重复,保存数据*/
{
data[try _ I][I]= temp;
same flag = 0;
}
}
}
for(I = 0;我& ltm;I++) /* Sort */
for(j = I+1;j & ltm;j++)
if(data[try _ I][I]& gt;data[try_i][j])
{
temp = data[try _ I][I];
data[try _ I][I]= data[try _ I][j];
data[try _ I][j]= temp;
}
for(I = 0;我& ltm;i++)
{
itoa(data[try_i][i],info,10);/*将数字转换为字符串*/
outtextxy(i*40,(8+try_i)*20,info);/*图形界面输出*/
fprintf(fp," %2d ",data[try _ I][I]);
}
fprintf(fp," \ n ");
}
fclose(FP);
getch();/*等待一个键*/
closegraph();/*关闭图形界面*/
返回0;
}