编写一个c++程序检查给定的整数是正偶数、负偶数、正奇数还是负奇数
#include <iostream>
using namespace std;
int main()
{
int n;
cout<< "Enter the number you want to check: n";
cin>>n;
if(n>0 &&n%2 ==0){
cout<< "number is positive even n";
}
else if(n<0 &&n%2 ==0){
cout<< "number is negative even n";
}
else if(n<0 &&n%2 !=0){
cout<< "number is negative odd n";
}
else (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}
return 0;
}
这是我的代码。当我没有在else (n>0 && n%2 !=0)
后面加分号时。它显示了一个错误:在'{'标记之前期望';'。如果有分号,则会出现逻辑错误,无论数字是什么,都会显示其他输出。
不使用if
就不能写else (condition)
。正确的方法是像你这样写else if (condition)
,或者你可以简单地写else { cout << "Number is positive"; }
。
当您有条件时,您不能省略if
-编译器将n>0 && n%2 !=0
解释为else
分支的主体,相当于:
else {
(n>0 && n%2 !=0)
}
{
cout<< "number is positive odd n";
}
其中是缺少分号的,如果您添加一个分号,您将得到一个不执行任何操作的表达式和一个无条件输出,相当于:
else
n>0 && n%2 !=0;
cout<< "number is positive odd n";
由于没有任何条件涵盖n
为零的情况,您可能需要
else if (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}
else {
cout << "number is zeron";
}
一行:else (n>0 && n%2 !=0)
else
表示如果上述if
和if-else
条件都为假,则执行else
条件中的逻辑,不需要任何条件。但是你加了一个条件n>0 && n%2 !=0
语法错误
你可以修改:
else (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}
:
else if (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}
或:
else{
cout<< "number is positive odd n";
}