C ++在if语句中返回错误的整数

时间:2016-10-23 17:04:03

标签: c++

我正在使用HackerRank,它将分别为参数输入4个数字(3,4,6,5),任务是能够返回最高数字,但是当我编译这个程序时它将输出3(a )而不是6(b),我不确定我哪里出错。

 #include <iostream>
 #include <cstdio>
 using namespace std;

int max_of_four(int a, int b, int c, int d) {
if ((a > b) && (a > c) && (a > d)) {
    return a;
}
if ((b > a) && (b > c) && (b > d)) {
    return a;
}
if ((c > b) && (c > a) && (c > d)) {
    return a;
}
else {
    return d;
}
}

int main() {
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
int ans = max_of_four(a, b, c, d);
printf("%d", ans);

return 0;
 }

3 个答案:

答案 0 :(得分:2)

而是拥有这个更简单的版本:

int max_of_four(int a, int b, int c, int d) {
    int max = a;
    if(b > max) max = b;
    if(c > max) max = c;
    if(d > max) max = d;

    return max; 
}   

答案 1 :(得分:1)

第二和第三个返回语句返回a而不是b和c。

答案 2 :(得分:0)

您没有在第2和第3 if语句中返回正确的变量。返回b和c。