看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我的程式是要取20個 10~50 之間不重複的整數存到陣列存放 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式進入無窮迴圈,無結果 程式碼(Code):(請善用置底文網頁, 記得排版) #include<iostream> #include<time.h> using namespace std; int RND(int,int); float random(); int main(){ int temp,count=0; int result[20]; bool flag; for(int i=0;i<20;i++) result[i]=0; srand(time(0)); while(count<20){ flag=false; temp=RND(10,50); for(int i=0;i<count;i++){ if(temp==result[i]) flag=true; } if(flag==true) continue; result[count]=temp; count++; } system("pause"); return 0; } float random(){ float d=rand()%10; d=d/10; return d; } int RND(int m,int n){ int r=(int)(m+(n-m)*random()+0.5); return r; } 補充說明(Supplement): 請問到底哪裏出錯,感覺沒錯0.0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.241.88
linotwo:呼叫 random() 得到的浮點數只有十種可能。 03/04 21:47
linotwo:要填滿 20 個欄位,其中一定會有重複。 03/04 21:47
roiafafa:補充一下,因為你的r=(int)(m+(n-m)*random()+0.5)這行 03/05 09:47
roiafafa:傳入的m和n從來沒有改變過,所以亂數取的10個值 03/05 09:47
roiafafa:都是加上和乘上同一個變量,有取亂數地方 03/05 09:51
roiafafa:只有那10個從random出來的數 03/05 09:51
LPH66:樓上提的基本上只是小事 重點在於你的 random() 只會給出 03/05 11:32
LPH66:一位小數的亂數 這即是一樓說的"十種可能"的意思 03/05 11:32
jimmycool:推薦板上的 #17SH4XHv 第一次使用亂數就上手 03/05 14:07