gpt4 book ai didi

C++ 计数器变量不能正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:53 25 4
gpt4 key购买 nike

我正在编写一个程序,询问用户难度级别,然后在计算正确答案的同时给他们乘法问题。我的问题是我的计数器 (numCorrect) 也更新了错误答案,我不明白为什么。谁能告诉我为什么?

int main()
{
int n; //difficulty level
int a, b, atimesb; // random generated numbers and multiplication
string name;
int numCorrect=0; // initilize counter to 0
int numAsked=0; // initilize counter to 0
int exitCond = 1; // loop condition continue

cout << "this program tests your multiplication skills!" << endl;
cout << "what is your name?" << endl;
getline(cin, name);
cout << " Enter a difficulty level" << endl;
cin >> n; // user input for difficulty level

while (exitCond != 0) // loop to continue asking until user ends with 0
{
MakeQuestion(n, a, b, atimesb); // calls function to make a question

UserAnswerIsCorrect(a, b, atimesb); // calls function to ask question and evaluate it

if (UserAnswerIsCorrect) // update if correct
{
numCorrect++;
}

numAsked++; // update total questions

cout << " Enter 0 to quit, 1 to go again" << endl;
cin >> exitCond; // user input for difficulty level

}
PrintScore(numCorrect, numAsked); // calls function to print score
return 0;
}
int NewRandomNumber(int n)
{
int val;
val = rand() % n + 2; // creates a number between 2 and n
return val;
}
void MakeQuestion(int n, int& a, int& b, int& atimesb)
{
a = NewRandomNumber(n);
b = NewRandomNumber(n);
atimesb = a*b;

return;
}
bool UserAnswerIsCorrect(int a, int b, int atimesb)
{
int userAns;
cout << a << "X" << b << "=" << endl;
cin >> userAns;
if (userAns == atimesb)
{
cout << "Correct!";

return true;
}
else
{
cout << "false, correct answer is:" << atimesb << endl;
return false;
}
}
void PrintScore(int numCorrect, int numAsked)
{
cout << "your score is: " << numCorrect << "/" << numAsked << " or " <<
(numCorrect / numAsked) * 100 << "%" << endl;
return;
}

最佳答案

UserAnswerIsCorrect(a, b, atimesb);  // calls function to ask question and evaluate it

if (UserAnswerIsCorrect) // update if correct
{
numCorrect++;
}

应该是

    if (UserAnswerIsCorrect(a, b, atimesb)) // update if correct
{
numCorrect++;
}

您在代码中忽略了 UserAnswerIsCorrect 的返回值。

关于C++ 计数器变量不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882637/

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