半步萧音过倾尘 2022-11-26 17:03 采纳率: 100%
浏览 36
已结题

求二维数组的最大值最小值和位置

为什么输出的是这样呀,不应该是
123
456吗为什么第一行第二行的输出是相同的?导致本程序出不来预期效果

img

img

img

  • 写回答

1条回答 默认 最新

  • a5156520 2022-11-26 18:39
    关注

    应该是因为定义存储输入数据的二维数组时用M和N来定义行和列,而此时M和N没有赋值,所以导致结果异常了,把定义二维数组放到获取了M和N的值后再定义即可,修改如下:

    #include <stdio.h>
    
    int main(void){
        
        int i=0,j=0,M,N,max,mai,e,b,c,d;
        
        
        printf("输入行和列:");
        scanf("%d%d",&M,&N);
        int a[M][N];
        
    //    printf("M=%d,N=%d\n",M,N);
        printf("输入数组元素:");
        for(i=0;i<M;i++){
            for(j=0;j<N;j++){
                scanf("%d",&a[i][j]);
            }
        }
        
        mai=max=a[0][0];
        e=b=c=d=0;
        for(i=0;i<M;i++){
            for(j=0;j<N;j++){
                if(a[i][j]>=max){
                    max=a[i][j];
                    e=i+1;
                    b=j+1;
                }
                if(a[i][j]<=mai){
                    mai=a[i][j];
                    c=i+1;
                    d=j+1;
                }
            }    
        }
        
        for(i=0;i<M;i++){
            for(j=0;j<N;j++){
                printf("%-5d",a[i][j]);
            } 
            printf("\n");
        }
        
        printf("\n最大值:%d, 最小值:%d\n",max,mai);
        printf("最大值位置%d行,%d列\n",e,b);
        printf("最小值位置%d行,%d列\n",c,d);
        
        return 0;
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月27日
  • 已采纳回答 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探