是小羊哦 2021-12-19 20:27 采纳率: 100%
浏览 129
已结题

输入一个3行4列的二维数组,求每行的最大值以及每列的平均值。

#include<stdio.h>
int main()
{
    int a[3][4],i,j,max1,max2,max3;
    double avg1=0, avg2=0, avg3=0 ;
    for (i = 0; i < 3; i++)
    for (j = 0; j < 4; j++)scanf("%d",& a[i][j]);
    max1 = a[0][0], max2 = a[1][0], max3 = a[2][0];
    for (i = 0; i < 4; i++)
    {
        if (a[0][i] > max1)max1 = a[0][i];
    }
    for (i = 0; i < 4; i++)
    {
        if (a[1][i] > max1)max1 = a[1][i];
    }
    for (i = 0; i < 4; i++)
    {
        if (a[2][i] > max1)max1 = a[2][i];
    }
    printf("%d %d %d\n",&max1,&max2,&max3);
}

只写了这些,但是最大值求不出来,想请教一下怎么写

  • 写回答

1条回答 默认 最新

  • a5156520 2021-12-19 20:37
    关注

    后面max1改为max2和max3,然后打印最大值的&max1,&max2,&max3改为max1,max2,max3,修改了一下如下:

    #include<stdio.h>
    int main()
    {
        int a[3][4],i,j,max1,max2,max3;
        double avg1=0, avg2=0, avg3=0 ;
        int sum1=0,sum2=0,sum3=0;
        for (i = 0; i < 3; i++)
            for (j = 0; j < 4; j++)
                scanf("%d",& a[i][j]);
                
        max1 = a[0][0], max2 = a[1][0], max3 = a[2][0];
                   
        for (i = 0; i < 4; i++)
        {
            if (a[0][i] > max1)
                max1 = a[0][i];
            sum1+=a[0][i];
        }
        for (i = 0; i < 4; i++)
        {
            if (a[1][i] > max1)
                max2 = a[1][i];
            sum2+=a[1][i];
        }
        for (i = 0; i < 4; i++)
        {
            if (a[2][i] > max1)
                max3 = a[2][i];
            sum3+=a[2][i];
        }
        avg1=(double)sum1/4;
        avg2=(double)sum2/4;
        avg3=(double)sum3/4;
        printf("max1=%d,max2=%d,max3=%d\n",max1,max2,max3);
        printf("avg1=%lf,avg2=%lf,avg3=%lf\n",avg1,avg2,avg3);
        
        return 0;
    }
     
    
    

    img

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

报告相同问题?

问题事件

  • 系统已结题 12月27日
  • 已采纳回答 12月19日
  • 创建了问题 12月19日