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

如何编写C语言程序输入n个数输出最小值及其序号(不使用数组)

你只需要新增一个变量存储最小值对应的序号,每次更新最小值的时候同步更新这个变量就可以满足需求,全程不需要用到数组,符合要求。

修改后的完整代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int n, m, min, min_index;
   printf("请输入要输入的数字个数:");
   scanf("%d",&n);

    for(int i = 1; i <= n; i++)
    {
        scanf("%d", &m);
        if (i == 1)
        {
            min = m;
            min_index = i;
        }
        else if (m < min)
        {
            min = m;
            min_index = i;
        }
    }

    printf("最小值是:%d,对应的输入序号为:%d\n", min, min_index);
    return 0;
}

改动说明

  • 新增了min_index变量,用于存储当前最小值对应的输入序号
  • 第一次输入数字初始化最小值时,同步将序号初始化为1
  • 后续每次判断到更小的数值时,同步将序号更新为当前的循环计数i
  • 去掉了原代码中冗余的min=1初始赋值(原逻辑中该值会被第一个输入的数字覆盖,无实际作用),同时删除了未使用的变量d
  • 补充了main函数的标准返回值,符合C语言语法规范

如果存在多个相同的最小值,上述代码会保留第一个出现的最小值的序号,如果你需要取最后一个出现的最小值的序号,把判断条件m < min改成m <= min即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:04