關於 C 隨機數生成的問題

發布 科技 2024-06-08
8個回答
  1. 匿名使用者2024-01-29

    當標誌為 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

  2. 匿名使用者2024-01-28

    gettickcount();

    函式的原型是 dword gettickcount(void),返回值以 32 位雙字型別 dword 儲存,所以可以儲存的最大值在 2-1 ms 左右,所以如果系統執行超過一天,這個數字會減少到 0

    所以這個隨機時間需要限制,否則可以執行幾天。

  3. 匿名使用者2024-01-27

    問題是你沒有清除每個迴圈中的標誌

    因此,如果存在重複的 temp,則標誌將始終為 false,並且永遠不會執行 a++ 語句。

  4. 匿名使用者2024-01-26

    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)

    沒關係。

  5. 匿名使用者2024-01-25

    將 flag=true 新增到末尾的 while 迴圈中; 就是這樣。

  6. 匿名使用者2024-01-24

    你的程式的長度與你的標誌有關,一旦你的標誌設定為 false,我不知道是否有任何方法可以增加你的 A。

  7. 匿名使用者2024-01-23

    系統提供了乙個生成隨機數的函式,即 rand() 函式。

    它根據系統內的隨機種子生成隨機數。

    直接呼叫 rand 函式將返回乙個需要包含標頭檔案的隨機數。

  8. 匿名使用者2024-01-22

    rand() 以 include 為標準庫的隨機函式!

相關回答
14個回答2024-06-08

1.隨機類的下乙個方法,在兩個整數之間生成乙個隨機數。 語法格式為: >>>More

11個回答2024-06-08

在 VC 中,有兩個函式可以設計為隨機數。

srand() and rand() >>>More

9個回答2024-06-08

我生成了 10 個 1-10 的隨機數,房東可以測試它們。 >>>More

5個回答2024-06-08

方法一:使用srand函式; srand 函式可以以兩種不同的方式使用:直接輸入隨機數種子並使用系統時間初始化隨機數種子; >>>More

5個回答2024-06-08

這裡使用了 rand() 函式和 srand() 函式,C C++ 中沒有 random(int number) 函式。 >>>More