我试图在 (1 - 100) 和要运行的代码之间生成一个随机数,但没有做我想要的。我注意到我不小心输入了&,而不是%使用 rand() 函数,编译器没有给我一个错误。到底发生了什么?为什么没有产生错误?&返回地址吗?这个错误很难找到,因为它是一个简单的错字,很容易错过。
这是错字:
unsigned int randomNumber = rand() & 100 + 1;
但这就是我要输入的内容:
unsigned int randomNumber = rand() % 100 + 1;
这是使用带有 & 的 rand()的代码,以防您希望运行它:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
unsigned int randomNumber;
char again;
do
{
std::cout << "Do you want to generate a random number? (y/n) ";
std::cin >> again;
randomNumber = rand() & 100 + 1;
std::cout << randomNumber << '\n';
} while (again == 'y');
getchar();
return 0;
}