當前位置:編程學習大全網 - 源碼下載 - C語言模擬隨機抽獎36選7

C語言模擬隨機抽獎36選7

/*************************************

* 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;

}

  • 上一篇:java中的enum有什麽用?
  • 下一篇:口袋妖怪綠寶石金手指精靈代碼(調怪獸的代碼)
  • copyright 2024編程學習大全網