我试图生成一个介于(1-100)和要运行的代码之间的随机数,但没有执行我想要的操作。我注意到我不小心用rand()函数键入了&而不是%,并且编译器确实做了NOT给我一个错误。到底是怎么回事?为什么没有错误产生? &是否返回地址?很难找到这个错误,因为它是一个容易错失的简单错字。
这里是错字:
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; }
我试图生成一个介于(1-100)和要运行的代码之间的随机数,但没有执行我想要的操作。我注意到我不小心键入&,而不是用rand()函数输入%,并且...