我试图在1-10之间生成一个随机数,然后让我的switch语句输出一周中的随机日,但我无法输出除8之外的任何其他数字
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a = rand() % 10 + 1;
cout << a << endl;
if (a != 4)
{ cout << endl << "a is less than 4" << endl;}
else
{ cout << endl << "a is greater than or equal to 4";}
return 0;
}
答案 0 :(得分:2)
您应该在srand(time(nullptr))
之前使用rand()
。
答案 1 :(得分:2)
在使用之前,您应该使用srand()
种子rand()
。
rand()
的输出取决于使用的种子。每次运行程序时都会使用相同的默认种子,每次都会产生相同的输出。
种子兰的常用方法是随着时间的推移:
#include <cstdlib>
#include <ctime>
int main() {
// Use current time as seed for random generator
srand(time(0));
// Do stuff with rand()
}
这样每次运行程序时都会得到不同的结果,因为每次执行程序的时间都会不同。
答案 2 :(得分:2)
初始化随机种子并继续。
int main()
{
srand (time(NULL));
int a = rand() % 10 + 1;
cout << a << endl;
if (a < 4)
{
cout << endl << "a is less than 4" << endl;
}
else
{
cout << endl << "a is greater than or equal to 4";}
return 0;
}