c 產生多組樂透亂數的問題(為什麼我只能產生一組)

奇怪為什麼我打的程式只能產生一組

我用計次器去檢查過副程式numerals()只會跑1次=.=

但是主程會跑N(輸入)次阿

真的被搞瘋了

我要產生多組不同樂透亂數(1~42一次6個數不能重複)

PS:記的幫我解說一下如果可以順便告訴我我打的那裡有錯!

下面是我打的程式

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void numerals();

void main(){

int n,i=0;

printf("請問要產生幾組樂透:");

scanf("%d",&n);

while(i<n){

numerals();

i++;

}

}

void numerals(){

int c[6],w1=0,f1,f2;

while(w1==0)

{

srand(time(NULL));

w1=1;

for(f1=0;f1<6;f1++)

c[f1]=rand()%42+1;

for(f1=0;f1<5;f1++)

for(f2=f1+1;f2<6;f2++)

if(c[f1]==c[f2])

w1=0;

}

for(f1=0;f1<6;f1++)

printf("%d ",c[f1]);

printf("\n");

}

已更新項目:

to: sin30shimizu_kaito

我改過了還是不能結果一樣都是列印出N組相同亂數的樂透

void main(){

int n,i=0;

printf("請問要產生幾組樂透:");

scanf("%d",&n);

while(i<n){

srand(time(NULL));

numerals();

i ;

}

}

2 個已更新項目:

奇怪會吃字ㄟ

void main(){

int n,i=0;

printf("請問要產生幾組樂透:");

scanf("%d",&n);

while(i<n){

srand(time(NULL));

numerals();

i ;

}

}

3 個已更新項目:

void main(){

int n,i=0;

printf("請問要產生幾組樂透:");

scanf("%d",&n);

while(i<n){

srand(time(NULL));

numerals();

i加加;

}

}

4 個已更新項目:

to: 軒 大大

感謝你幫我解出來了

順便問一下請問srand((unsigned)time(NULL));

當中的unsigned是啥

是用來重新用時間抓嗎?

還是?

5 個解答

評分
  • 1 0 年前
    最佳解答

    我已經修改好了(可以執行),你試試看,有問題再問吧.

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    void numerals();

    void main()

    {

    int n,i=0;

    printf("請問要產生幾組樂透:");

    scanf("%d",&n);

    srand((unsigned)time(NULL));

    while(i<n)

    {

    numerals();

    i++;

    }

    system("pause");

    }

    void numerals()

    {

    int c[6],w1=0,f1,f2;

    while(w1==0)

    {

    //srand((unsigned)time(NULL));

    w1=1;

    for(f1=0;f1<6;f1++)

    c[f1]=rand()%42+1;

    for(f1=0;f1<5;f1++)

    for(f2=f1+1;f2<6;f2++)

    if(c[f1]==c[f2])

    w1=0;

    }

    for(f1=0;f1<6;f1++)

    printf("%d ",c[f1]);

    printf("\n");

    }

    2006-12-12 20:43:13 補充:

    順便問一下請問srand((unsigned)time(NULL));

    是的!

    不加其實應該也OK,因為函數原型為 void srand(unsigned int seed);

    保險起見,我都會加 (unsigned) 作轉型,保證為正整數

    參考資料: 我&BCB6, 我
  • 匿名使用者
    5 年前

    * ***** http://*****

    [電子遊戲]

    拉霸、水果盤、7PK、5PK

    [運彩遊戲]

    棒球、籃球、足球、網球、冰球、各種體育經典賽事

    [真人遊戲]

    百家樂、21點、骰寶、輪盤、牌九、三公、輪盤、翻攤、牛牛、二八杠

    [對戰遊戲]

    台灣麻將、德州撲克、骰盅吹牛、四支刀、鬥地主、十三支、二八槓、暗棋、接龍

    [彩球遊戲]

    香港六合、台灣樂透、今彩539、樂合彩、大陸時時彩、基諾彩、北京賽車、賽狗、賽馬、指數

    [優惠活動]

    1. 新舊會員儲值就送500點

    2. 真人百家樂彩金等你拿

    ***** http://*****

    歡迎免費體驗試玩!!

    線上影片直播、正妹圖、討論區免費註冊 ~

  • 匿名使用者
    6 年前

    線上遊戲天堂 http://ts999.tw

    運動遊戲

    實況棒球、籃球、足球、冰球、網球等多種經典賽事

    即時遊戲

    百家、21點、牌九、二八杠、骰寶、龍虎、輪盤、牛牛、番攤

    對戰遊戲

    麻將、德州撲克、二八杠、吹牛、鬥地主、13支、暗棋、接龍

    電子遊戲

    5PK、7PK、水果盤遊戲、5輪遊戲、極限飆速、趙雲救主、西遊戲、金瓶梅、中國美人、英雄

    彩球遊戲

    大樂透、六合、時時彩、今彩539、3星彩、4星彩

    最新優惠活動

    1. 運動遊戲連過5關,彩今再加碼10%

    2. 新會員加入,有機會獲得500元禮券與精美讀卡機

    3. 遊戲積分可兌換汽機車、3C、精品等多種大獎

    免費線上體驗試玩喔~!

    線上遊戲天堂 http://ts999.tw

  • 匿名使用者
    6 年前

    瞭解一次、多一次的保障。尋找八大行業工作。必須謹慎小心一點。

    小巴常說:保險跟冒險只差一個字,意義卻是大不同!

    一通電話、一次詢問。都是為自己的著想。

  • 您覺得這個回答如何?您可以登入為回答投票。
  • 匿名使用者
    1 0 年前

    把 srand(time(NULL)); 移动去 main function 里面(在执行 numerals(); 之前)。

    最后的 printf("n"); 改为 printf("\n");

    有问题再讨论。。。。

    參考資料: 自己
還有問題?馬上發問,尋求解答。