连续生成两个随机数不会在C中工作?

时间:2014-05-14 21:31:49

标签: c random

我试图用C:

连续得到两个随机数
#include <time.h>
#include <stdlib.h>
void testcollgenarray() {
    for(int i=0; i<10; i++)
    {
        int r1 = rand() % 256;
        int r2 = rand() % 256;
        cout << r1 << endl;
        cout << r1 << endl;
    }
}

显然,在每个循环中,随机数生成器输出相同的数字:

207
207
41
41
98
98
49
49
6
6
8
8
95
95
79
79
154
154
252
252

2 个答案:

答案 0 :(得分:3)

    cout << r1 << endl;
    cout << r1 << endl;
    //       ^-- You're printing r1 twice

答案 1 :(得分:2)

你应该给你的随机生成种子。例如,在随机生成之前使用此行代码一次:

srand(time(0));

使用当前时间进行随机生成。