C++ C/C++;“前应为主表达式”;否则";

C++ C/C++;“前应为主表达式”;否则";,c++,C++,有人能帮我吗?我刚开始在C/C++上编程(我正在使用DevC++) #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ int X; int-Y; INTR; cout X,Y; 如果(Y=1){ R=X; }; //如果 else(){ 做 而(Y>0){ R=X*X; Y--; }// };//else cout这是因为if语句后面有一个分号。 如果报表格式为: if(expression) { // If Code } else

有人能帮我吗?我刚开始在C/C++上编程(我正在使用DevC++)

#包括
#包括
使用名称空间std;
int main(int argc,char*argv[]){
int X;
int-Y;
INTR;
cout X,Y;
如果(Y=1){
R=X;
};
//如果
else(){
做
而(Y>0){
R=X*X;
Y--;
}//

};//else cout这是因为if语句后面有一个分号。 如果报表格式为:

if(expression)
{
     // If Code
}
else
{
     // Else code
}
在此处删除最后一个“;”。

您有五个错误:

  • cin>>X,Y;
    不同时读取用户输入到
    X
    Y
    。实际上它是两个独立的语句:
    cin>>X;
    Y;
    。第一个语句读取用户输入到
    X
    ,第二个语句计算
    Y
    的当前值,并且不对其做任何操作。要同时读取用户输入到这两个语句,请执行以下操作:变量:
    cin>>X>>Y;
  • if(Y=1)
    1
    分配给
    Y
    。您想用
    =
    检查是否相等:
    if(Y==1)
    即“if
    Y
    等于
    1
  • 不要在
    if
    else
    while
    块后加分号。它们是多余的,会导致类似这样的错误。只在语句后加分号
  • 不要把
    ()
    放在
    之后,否则
  • do while循环是
    do{…}while(…);
    不是
    do while(…){…}
    ,而while循环只是
    while(…){…}
  • 以下是正确的版本:

    ...
    cin >> X >> Y; // 1.
    
    if (Y == 1) { // 2.
        R = X;
    } // 3.
    else { // 4.
        while (Y > 0) { // 5.
            R = X * X;
            Y--;
        }
    
        // or if you want a do-while:
        do {
            R = X * X;
            Y--;
        } while (Y > 0); // semicolon here!
    }
    

    总之,选择一个合适的方法来正确学习该语言,这样你就可以停止猜测正确的语法了。

    else()
    是错误的,它应该是
    else
    。在这里提问之前,请阅读一些有关该主题的教程。欢迎使用堆栈溢出!删除;否则,也不应该在else中插入任何括号(else()是错误的)如果你修复了这个错误,你就可以得到下一个。如果你回去阅读初学者的教程,也许更好。使用StAcExcel作为逐行语法检查器是不好用的:- C/C++不是语言。根据你的代码判断,你正在学习C++。在else之后,几乎任何紧跟在紧括号后面的分号。我可能忘记了什么,但我不认为};语法永远都是正确的。
     if (Y = 1) {
            R = X;
     };
    
    ...
    cin >> X >> Y; // 1.
    
    if (Y == 1) { // 2.
        R = X;
    } // 3.
    else { // 4.
        while (Y > 0) { // 5.
            R = X * X;
            Y--;
        }
    
        // or if you want a do-while:
        do {
            R = X * X;
            Y--;
        } while (Y > 0); // semicolon here!
    }