-
當標誌為 false 時,您的程式將無法繼續獲得正確的結果,因為 temp 是隨機生成的,因此在某些情況下,mins[i]==temp 可能為 true。 我修改了兩個地方,步驟如下:
void main();
int temp=0;
int i,a=0;
srand((unsigned)time(null));*播種*
while(a<=9)
bool flag=true;這裡的標誌從全域性變數改為區域性變數,每次迴圈,設定一次。
temp=rand() 99;
for(i=0;i<10;i++)
if(mins[i]==temp)
if(flag)
mins[a]=temp;
cout
-
gettickcount();
函式的原型是 dword gettickcount(void),返回值以 32 位雙字型別 dword 儲存,所以可以儲存的最大值在 2-1 ms 左右,所以如果系統執行超過一天,這個數字會減少到 0
所以這個隨機時間需要限制,否則可以執行幾天。
-
問題是你沒有清除每個迴圈中的標誌
因此,如果存在重複的 temp,則標誌將始終為 false,並且永遠不會執行 a++ 語句。
-
if(mins[i]==temp) 和 mins[a]=temp; 這個衝突,你for(int i=0; i<10;i++)
if(mins[i]==temp)
已更改為。 for(int i=a;i<10;i++)if(mins[a]==temp)
沒關係。
-
將 flag=true 新增到末尾的 while 迴圈中; 就是這樣。
-
你的程式的長度與你的標誌有關,一旦你的標誌設定為 false,我不知道是否有任何方法可以增加你的 A。
-
系統提供了乙個生成隨機數的函式,即 rand() 函式。
它根據系統內的隨機種子生成隨機數。
直接呼叫 rand 函式將返回乙個需要包含標頭檔案的隨機數。
-
rand() 以 include 為標準庫的隨機函式!
方法一:使用srand函式; srand 函式可以以兩種不同的方式使用:直接輸入隨機數種子並使用系統時間初始化隨機數種子; >>>More
這裡使用了 rand() 函式和 srand() 函式,C C++ 中沒有 random(int number) 函式。 >>>More