失踪的;在标识符计数之前

Missing ; before identifier cout

本文关键字:标识符 失踪      更新时间:2023-10-16

我正在完成学校的作业。我写了所有内容,但似乎有一个错误:

在第15行"您的数字更大"之前的计数前缺少";"比……"

我无法理解这个错误或修复它。请帮助。整个程序的代码如下:

#include <iostream>
using namespace std;
int main()
{
    int intSecretNum = 47;
    int intGuess;
    cout<< "Guess the secret number (between 0 and 100 inclusively): ";
    cin>> intGuess;
    while(intSecretNum != 47, intGuess<= 5)
    {
            if( intGuess < intSecretNum)
                cout << "Your Number is smaller than the secret number";
            else (intGuess > intSecretNum)
                cout << "Your Number is bigger than the secret number";
            intGuess++;
            if(intGuess>5)
                cout << "Sorry, you have used up all your quota (5 times)! The secret number is "<<intSecretNum;
                cout << "program terminated." <<endl;
    }
    cout<< "You have used "<<intGuess <<"to guess te secret number which is " <<intSecretNum<<".";
    cout<<"program terminated."<<endl;
    return 0;
}

我对c++很陌生,请帮忙

问题就在这里

else (intGuess > intSecretNum)
            cout << "Your Number is bigger than the secret number";

这里假设(intGuess > intSecretNum)是一条将在else条件下执行的语句,这就是为什么您会得到一个错误警告,警告您缺少分号。

应该改成

else if(intGuess > intSecretNum)
            cout << "Your Number is bigger than the secret number";

修改这一行:

else (intGuess > intSecretNum)

else if( intGuess > intSecretNum)

问题是你不能只用关键字else给出一个特殊的条件。Else用来描述"在任何其他情况下做……"。所以在你的例子中,因为这是一个简单的测试你可以试着在else之后去掉条件然后从:

开始

else (intGuess> intSecretNum):

else

为了可读性,我还建议总是用{}包围你的指令这将给你:

while(intSecretNum != 47, intGuess<= 5)
    {
            if( intGuess < intSecretNum){
                cout << "Your Number is smaller than the secret number";
            }
            else {
                cout << "Your Number is bigger than the secret number";
            }
            intGuess++;
            if(intGuess>5)
                cout << "Sorry, you have used up all your quota (5 times)! The secret number is "<<intSecretNum;
                cout << "program terminated." <<endl;
    }

注意:在while循环中也有一些没有意义的东西。但这可能是另一个问题的主题

你的意思可能是:

while(intSecretNum != 47, intGuess<= 5)
{
    if( intGuess < intSecretNum)
        cout << "Your Number is smaller than the secret number";
    else if(intGuess > intSecretNum)
        cout << "Your Number is bigger than the secret number";
    intGuess++;
    if(intGuess>5) {
        cout << "Sorry, you have used up all your quota (5 times)! The secret number is "<<intSecretNum;
        cout << "program terminated." <<endl;
    }
 }

注意else后面的ifelse没有if那样的条件。还要注意最后一个if块周围的括号。没有括号,只有一条语句构成整个if块。