为什么这个随机发生器不工作

Why is this random generator not working?

本文关键字:工作 发生器 随机 为什么      更新时间:2023-10-16

每次运行这段代码时,它都会返回这个值:1804289383如果我把random()的函数体移到main()中,它就能正常运行。

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int random(int);
int main()
{
    cout << random();
    cin.get();
    return 0;
}
int random(int) 
{
    unsigned seed = time(0); 
    srand(seed);              
    int randomNum = rand()%4 + 1;
    return randomNum;
}

问题是random()需要一个参数,而您没有提供该参数。

如果你这样称呼它:

cout << random(0);

工作。

然而,一个更好的方法是消除实参,因为它没有使用。

最后但并非最不重要的是,您应该只调用srand()一次,在程序启动时