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

程序仅输出最后输入数字问题排查:求10个数最大值的代码错误

问题排查:找出10个数字最大值的程序错误

你的代码存在两个关键问题,导致程序只能输出最后输入的数字:

1. 最大值判断逻辑位置错误

你把if(n > largest)放在了for循环的外面,这意味着循环结束后,只会拿最后一次输入的数字和初始值largest=0做比较,前面9次输入的数字根本没有参与最大值的判断。

2. 最大值初始值设置不合理

largest初始化为0,如果输入的10个数字全是负数,程序会错误地输出0,而不是实际的最大负数。

修正后的代码

#include <stdio.h>

int main()
{
    printf("Give 10 numbers > \n");
    int n;
    // 读取第一个数字作为最大值的初始值,适配正负输入场景
    scanf("%d", &n);
    int largest = n;

    // 循环处理剩下的9个数字
    for(int i=1; i<10; i++){
        scanf("%d", &n);
        // 每次输入后立即比较并更新最大值
        if(n > largest){
            largest = n;
        }
    }
    printf("Your largest number is %d", largest);

    return 0;
}

修正说明

  • 先读取第一个输入数字作为largest的初始值,确保初始值来自输入集合,避免全负数场景的错误。
  • 将最大值判断逻辑移入for循环内部,每次输入新数字后立刻与当前最大值比较,实时更新最大值,确保所有输入数字都参与判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:45:01