gpt4 book ai didi

c++ - 奇怪的错误。在循环中使用 rand() 和数组

转载 作者:行者123 更新时间:2023-11-30 03:46:51 24 4
gpt4 key购买 nike

我真的无法解释我的程序发生了什么。我真的无法发现可能导致问题的原因。它发生在这个函数中

void test()
{
srand(time(NULL));

questionNo = 1;

for (testLoop = 0; testLoop < 10; ++testLoop)
{
const char opArray[3] = { 'x', '+', '-' };
int pickValue = rand() % 3;
char Operator = opArray[pickValue];

int n1 = rand() % 20 + 1;
int n2 = rand() % 20 + 1;

if (Operator = '+')
answer = n1 + n2;
else if (Operator = '-')
answer = n1 - n2;
else
answer = n1 * n2;

cout << "Question " << questionNo << "\n";
++questionNo;
cout << n1 + " " << Operator + " " << n2 << "?";
userAnswer = cin.get();

if (userAnswer = answer)
{
cout << "\n\n Correct!\n";
system("cls");
++score;
}
else
{
cout << "\n\n Incorrect!\n";
system("cls");
}
Sleep(500);
}
cout << "You scored " << score << " out of 10!";
fileWrite(score);
}

发生的情况的示例如下。这输出到控制台

问题一
@Øÿ×╝׳×0ƒ11?

那到底是什么???
它还每次都会跳过两个问题。例如它去

“问题一”
《问题3》
《问题5》

最佳答案

您在此代码段中使用赋值运算符 = 而不是比较运算符 ==

    if (Operator = '+')
answer = n1 + n2;
else if (Operator = '-')
answer = n1 - n2;
else
answer = n1 * n2;

按照以下方式修改

    if (Operator == '+')
answer = n1 + n2;
else if (Operator == '-')
answer = n1 - n2;
else
answer = n1 * n2;

这个语句也有同样的错误

   if (userAnswer = answer)

也代替

   userAnswer = cin.get();

使用运算符>>

sin >> userAnswer;

这句话也有错别字

    cout << n1 + " " << Operator + " " << n2 << "?";

应该有

    cout << n1 << " " << Operator << " " << n2 << "?";

关于c++ - 奇怪的错误。在循环中使用 rand() 和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com