Hackerrank C++练习:求四个整数最大值代码编译报错如何解决
错误排查
- 括号匹配错误:
if (a > b)分支内的嵌套if逻辑写完后,额外多了一个无匹配if的else语句,同时if(a>b)的大括号未正确闭合,导致编译器识别else无对应匹配项,全局作用域括号也错乱。 - 返回值缺失:
max函数声明为int返回类型,但所有分支仅执行打印操作,未return对应最大值,触发返回值类型错误。 - 函数名不符合要求:题目明确要求实现的函数名为
max_of_four,自定义的max函数不符合接口要求,同时多层嵌套if的逻辑存在漏洞,无法覆盖b、c、d之间的所有大小比较场景。 - 引入了冗余头文件:代码中未使用C标准输入输出函数,不需要引入
stdio.h。
正确实现
#include <iostream> using namespace std; int max_of_four(int a, int b, int c, int d) { int max_val = a; if(b > max_val) max_val = b; if(c > max_val) max_val = c; if(d > max_val) max_val = d; return max_val; } int main() { int a, b, c, d; cin >> a >> b >> c >> d; int ans = max_of_four(a, b, c, d); cout << ans; return 0; }
修改说明
- 函数名调整为题目要求的
max_of_four,符合接口规范 - 简化最大值求解逻辑,采用逐次比较的方式,避免嵌套if的括号匹配问题,同时覆盖所有大小比较场景
- 函数执行结束后返回最终的最大值,解决返回值缺失问题
- 删除冗余的
stdio.h头文件,修正所有括号匹配问题
内容的提问来源于stack exchange,提问作者Shashaank Kumar
相关产品推荐
相关产品推荐

