我正在使用HackerRank,它將分別輸入參數的4個數字(3,4,6,5),任務是能夠返回最高數字,但是當我編譯這個程序它會輸出3(a)而不是6(b),我不確定哪裏出錯了。C語言在if語句上返回錯誤的整數
#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;
}
請不要在這裏問關於在線代碼判斷引擎的問題。任何人都不可能告訴你自己的測試用例失敗,因爲這些通常都沒有披露。即使您測試的是在您的本地環境中運行,您可能錯過了測試在線挑戰中應用的一些邊緣案例。有創意並嘗試找到它們。此外,長期來看,這些問題可能沒有任何價值,除了欺騙在線競賽之外,沒有任何東西可以學到。 –
您可以在_if語句中省略括號@ http://www.difranco.net/compsci/C_Operator_Precedence_Table.htm – PinaGamer
@PinaGamer我認爲括號使得表達式更加離散。在這方面沒有錯。 –