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;

}