You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言max_of_four函数代码错误排查:输入3 4 5 6输出60

代码问题排查与修复

核心问题分析

输入3 4 5 6输出60的直接原因:

  • max_of_four函数内部直接调用printf输出了最大值6
  • 函数最后固定返回0,main函数又打印了这个返回值0,两者拼接后就变成了60

此外代码还有两个隐藏缺陷:

  • 当存在多个相等的最大值时(比如输入5 5 3 2),不会有任何输出
  • 函数设计不符合命名逻辑:max_of_four应该返回最大值而非直接打印结果

修复后的代码

#include <stdio.h>

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;
}

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;
}

修复说明

  • 让max_of_four专注于计算最大值并返回,把打印操作交给main函数,符合单一职责原则
  • 用逐步比较的方式找最大值,逻辑简洁且覆盖了存在相等值的场景
  • 现在输入3 4 5 6会正确输出6,输入5 5 3 2也能输出5

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:52:18