每次运行此代码时,IF语句都不严格遵循给定的条件。当我生成1或2时,它有时也显示“noway”,有时当我生成6时它不会显示它。我不知道发生了什么。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0)) ;
for(int x = 1; x <2; x++)
{
cout << (rand()%6) << endl ;
}
if((rand()%6) >= 3)
{
cout << " nowaay " ;
}
}
答案 0 :(得分:1)
您第一次rand()
来电输出的值:
cout << (rand()%6) << endl ;
与您第二次通话中测试的值不同:
if((rand()%6) <= 3) {
你无法从前者推断出后者。要掌握它,请将您的if
测试替换为:
const int alea = rand() % 6;
std::cout << "alea = " << alea << "\n";
if (alea <= 3) {
std::cout << "way\n";
}