这段代码中有什么错误:C ++检查数字是偶数还是奇数

时间:2019-04-13 11:22:09

标签: c++

我在c ++中编写了以下代码,检查数字是偶数还是奇数。 当用户输入25或11时,程序会将其标识为偶数,似乎只有在忽略且忽略else语句时enter image description here

4 个答案:

答案 0 :(得分:1)

even()从用户输入n,但不返回。最后添加一个return语句,您应该可以:

int even()
{
    int n;
    count << "input number:" << endl;
    cin >> n;
    return n; // Here!
}

答案 1 :(得分:1)

您可能想要的是:

bool even(int number) {
    return (number % 2) == 0;
}

int main() {
    int n;
    std::cout << "input number:" << endl;
    std::cin >> n;
    if(even(n)) {
        std::cout << "The number is even." << std::endl;
    }
    else {
        std::cout << "The number is odd." << std::endl;
    }
}

如前所述,您的even()函数根本没有返回任何值(这会导致未定义的行为)。

即使正确无误,even()函数的唯一目的似乎是获得输入值,而不计算任何有关自然的东西( even / < em> odd )。
对于任何阅读您的代码的人来说,这可能会非常混乱。

如果您只想使用输入函数,只需命名为:

int takeNumberInput() {
 // ^^^^^^^^^^^^^^^
    int n;
    count << "input number:" << endl;
    cin >> n;
    return n;
}

答案 2 :(得分:0)

问题是您的even()函数没有返回值。如果您想保留格式,建议您用getInput()替换even()。

#include <iostream>
using std::cout; using std::cin; using std::endl;
int getInput(){
    int theInput;
    cin >>theInput;
    return theInput;
}
int main(){
    int number;
    std::cout << "input number:";
    number = getInput();
    if(number%2 == 0) {
        cout << "The number is even." << endl;
    }
    else {
        cout << "The number is odd." << endl;
    }
}

答案 3 :(得分:0)

问题是

1)
if (num |%2 == 0)       //This line won't even compile. There is a syntax error
2)
int even() not returning a value.

确保您的代码可以编译,然后再次发布。