weixin_61912273 2022-04-13 20:25 采纳率: 70%
浏览 26
已结题

为什么这样不能输出最小值

#include<stdio.h>
int main()
{
int i,a[10],j,k;
int max,min;
max=min=a[0];
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]>=max)
{
max=a[i];
j=i;

}
}
printf("最大数为%d,第%d位",max,j+1) ;
for(i=0;i<10;i++)
{
if(a[i]<=min)
{
min=a[i];
j=i;

}
}
printf("最小数为%d,第%d位",min,j+1) ;

}

  • 写回答

1条回答 默认 最新

  • a5156520 2022-04-13 20:55
    关注

    因为初始化min的位置不对,在获取输入到数组a之前把数组a下标0的值赋给min,min的值为未初始化数组a下标0内存位置的值,而不是实际数组a获取输入后的值,如果这个内存位置的值小于数组a里所有元素的值,就会输出错误的结果,修改如下:

    #include<stdio.h>
    int main()
    {
        int i,a[10],j,k;
        int max,min;
        
        
        for(i=0;i<=9;i++)
            scanf("%d",&a[i]);
        
        
        max=min=a[0]; //在数组a获取输入后再进行max和min的初始化
        for(i=0;i<10;i++)
        {
            if(a[i]>=max)
            {
            max=a[i];
            j=i;
            
            }
        }
        
        printf("\n最大数为%d,第%d位\n",max,j+1) ;
        for(i=0;i<10;i++)
        {
            if(a[i]<=min)
            {
                min=a[i];
                j=i;
            
            }
        }
        printf("最小数为%d,第%d位\n",min,j+1) ;
    
        return 0; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度