[問題] 請問為什麼產生亂數,卻都一樣??

看板C_and_CPP作者 (Effort)時間15年前 (2010/02/10 16:31), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/3 (看更多)
以下是我寫的程式碼,是關於依賴使用者輸入幾個字串, 除以一半要為2的倍數,然後就會產生幾個亂數, 不過很奇怪,為什麼亂數都是一樣... 程式碼可能有點長,且還在進行階段,麻煩大家幫我看一下哪裡有錯, 造成你們的麻煩,請多多見諒,謝謝!! #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main(void) { char name[40][80]; int count=0; int number1[10]; int length,number,i; printf ("請輸入字串,最多40筆,按 enter 即離開。\n"); while (count<40) { printf ("請輸入第%d個字串: ",count+1); gets(name[count]); length=strlen(name[count]); if(length==0) break; count++; } printf ("您總共輸入了%d個字串\n",count); if (count%2==0) number=count/2; for (i=0;i<number;i++) { srand(time(NULL)); //一定要加入此程式碼 number1[i]=(rand()%count+1); } for (i=0;i<number;i++) { printf ("%d\n",number1[i]); } system ("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.204.22

02/11 00:32, , 1F
srand只要最開始設定一次吧,而且srand引數內容如果每次一樣
02/11 00:32, 1F

02/11 00:33, , 2F
那結果應該也每次一樣... 所以要稍微注意一下
02/11 00:33, 2F

02/11 00:48, , 3F
謝謝樓上,果然是srand的設定,我把它移到別的地方了
02/11 00:48, 3F

02/11 13:10, , 4F
#1BRRkqdb (C_and_CPP) 前面的這篇之後的回文可以參考
02/11 13:10, 4F
文章代碼(AID): #1BSjzaoJ (C_and_CPP)
文章代碼(AID): #1BSjzaoJ (C_and_CPP)