我真的无法解释我的程序正在发生什么。我真的不知道是什么引起了问题。它发生在此功能内
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);
}
下面是发生的一个示例。输出到控制台
问题1
@Øÿ×╝׳×0ƒ11?
那什至是什么???
每次也跳过两个问题。例如它
“问题1”
“问题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();
使用operator >>
。
sin >> userAnswer;
这句话也有错字
cout << n1 + " " << Operator + " " << n2 << "?";
应该有
cout << n1 << " " << Operator << " " << n2 << "?";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句