![](/img/trans.png)
[英]c++ if (DEBUG) … expected primary-expression before '==' token
[英]C/C++ expected primary-expression before “else”
有人能帮我吗? 即时通讯刚刚开始在C / C ++上编程(即时通讯使用DevC ++)
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int X;
int Y;
int R;
cout << "FUNCION POTENCIA";
cout << "Ingrese primero la base y luego el exponente";
cin >> X, Y;
if (Y = 1) {
R = X;
};
//if
else() {
do
while (Y > 0) {
R = X * X;
Y--;
}; //do while
}; //else cout<< R;
system("PAUSE");
return EXIT_SUCCESS;
} //main
您有五个错误:
cin >> X, Y;
不会同时读取X
和Y
用户输入。 它实际上是两个单独的语句: cin >> X;
和Y;
。 第一个读取X
用户输入,第二个读取Y
的当前值,并且不对其执行任何操作。 要读取用户输入的两个变量: cin >> X >> Y;
。 if (Y = 1)
将1
分配给Y
您要使用==
检查是否相等 : if (Y == 1)
即“如果Y
等于1
” 。 if
, else
和while
块之后放置分号。 它们是多余的,并且会导致此类错误。 仅在语句后放置分号。 ()
后, else
。 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!
}
总之,选择一本书以正确学习语言,这样您就可以停止猜测正确的语法是什么。
这是因为if语句后有分号。 更正以下语句形式:
if(expression)
{
// If Code
}
else
{
// Else code
}
if (Y = 1) {
R = X;
};
删除最后一个“;” 这里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.