答案 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.
确保您的代码可以编译,然后再次发布。