m0_63806909 2021-12-18 10:20 采纳率: 90%
浏览 259
已结题

设计一个函数,该函数用于求一个任意大小的二维double型数组的平均值.该函数名叫matrixAvg,输入:第一行输入整数M和N 从第二行开始,输入M行,每行输入N个double型的数

#include<stdio.h>
float matrixAvg(int m,int n,double a[100][100])
{
int i,j;
double average;
double sum=0.0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
sum+=a[i][j];
average=sum/(m*n)*1.0;
return average;
}
int main()
{
int M,N;
scanf("%d%d",&M,&N);
double aver,a[M][N];
int i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%lf",&a[i][j]);
aver=matrixAvg(M,N,a);
printf("%.2f\n",aver);
return 0;
}
/能不能帮我看看我的代码错在哪里呢?该怎么修改呢?谢谢您/

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-18 10:38
    关注

    供参考:

    #include<stdio.h>
    #define K 100           //修改 定义常量 K=100
    double matrixAvg(int m,int n,double a[][K])  //修改
    {
        int i,j;
        double average=0.0;
        double sum=0.0;
        for(i=0;i<m;i++)
           for(j=0;j<n;j++)
               sum+=a[i][j];
        average = sum/(m*n)*1.0;
        return average;
    }
    int main()
    {
        int M,N,i,j;
        double aver,a[K][K];//修改,数组定义是常量
        scanf("%d%d",&M,&N);
        for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                scanf("%lf",&a[i][j]);
        aver=matrixAvg(M,N,a);
        printf("%.2f\n",aver);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

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