我正在使用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;
}
答案 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。