* Author : wacs5
* Email : wacs5@126.com
* Function : 36選7
*************************************/
#include <dos.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <Graphics.h>
#define N 36 /*36選7*/
#define M 7 /*36選7*/
#define 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("File Open Error:\nPress any key to exit:");
getch();
exit(-1);
}
initgraph(&gdriver,&gmode,""); /*初始化圖形驅動*/
randomize(); /*初始化隨機數*/
for (i=0;i<N;i++) /*將36個球放入數組*/
order[i]=i+1;
for (i=0;i<N;i++) /*36個球隨機輸出*/
{
j=rand()%(N-i);
temp=order[N-i-1];
order[N-i-1]=order[j];
order[j]=temp;
}
for (i=0;i<N;i++)
{
itoa(order[i],info,10); /*將數轉成字符串*/
outtextxy((i%M)*40,(i/M)*20,info); /*圖形界面輸出*/
}
for (try_i=0;try_i<TRY_N;try_i++) /*第try_i次實驗*/
{
for (i=0;i<M;i++) /*第i個數*/
{
sameflag=1; /*因為選的數不能重復*/
while (sameflag==1) /*若重復,計算直至不重復為止*/
{
temp=rand()%N+1; /*產生1到36之間的隨機數*/
for (j=0;j<i;j++) /*與已選的數對比,看是否重復*/
if (temp==data[try_i][j]) /*若重復,繼續下壹個取數*/
break;
if (j==i) /*不重復,保存數據*/
{
data[try_i][i]=temp;
sameflag=0;
}
}
}
for (i=0;i<M;i++) /*排序*/
for (j=i+1;j<M;j++)
if (data[try_i][i]>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;i<M;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(); /*關閉圖形界面*/
return 0;
}