JackyLaw’s Weblog


Mark Six Programming
二月 19, 2009, 9:43 pm
Filed under: Uncategorized | Tags: ,

今次的電腦功課就是寫一個程式generate六個由一至四十九,但是要全部不一樣的數字出來,即是香港人平日最愛買的六合彩。
其實這一個程式早在這個功課前已經有構思過,但我只是想同有一個很笨的方法,去generate六個完全不一樣的數字,就是用do-while loop:
do{
…………..
…………..
}while(a[1]==a[2]||a[1]==a[3]…)
但是經今日上堂肥陳的提點,用了一個flag的概念,就是每generate一個亂數:
a[1]=46 => flag[46]=1 (原本等於0) 等於一意思:已經使用
a[2]=34 => flag[34]=1 (原本等於0) 等於一意思:已經使用
a[3]=46 當再有一個相同的數字跑出來,check flag[46]已經使用,所以再要generate一佪數取替
結果程式碼如下:
#include
#include
#include

int main()
{
int ball[6], flag[49], i, j;
srand(time(NULL));
for(i=1; i<=49; i++)
flag[i]=0;
for(i=1; i<=6; i++){
j=rand()%49+1;
ball[i]=j;
if (flag[j]==0)
flag[j]=1;
else{
while(flag[j]==1){
j=rand()%49+1;
ball[i]=j;
if (flag[j]==0) break;
else continue;
}
flag[j]=1;
}
}
for(i=1; i<=6; i++)
printf(“%d\n”, ball[i]);
system(“PAUSE”);
}


Leave a Comment so far
Leave a comment



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s



Follow

Get every new post delivered to your Inbox.