www1818518
2021-06-17 13:10
采纳率: 100%
浏览 62

C语言期末题目求助!!!!!!!!

题目描述设计一个函数,该函数用于求一个任意大小的二维double型数组的平均值。该函数的名字叫做matrixAvg

 

请使用下面的main函数测试你设计的函数

 

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;

}

输入描述第一行输入整数M和N

从第二行开始,输入M行,每行输入N个double型的数

输出描述输出数组的平均值

提示无

样例输入复制样例输入数据

3 4
1 2 3 4
5 6 7 8
9 10 11 12

样例输出6.50

允许最长运行时间3000ms

允许使用最大内存1024KB

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • hubei_dxx 2021-06-17 14:24
    已采纳
    double matrixAvg(int m, int n, double** a)
    {
        int i,j;
        double sum = 0.0;
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
                sum += a[i][j];
        sum = sum / (m * n);
        return sum;
    }
    int main(){
        int M,N;
        int i,j;
    
        scanf("%d%d",&M,&N);
    
        double aver = 0.0;
        double **a = new double* [M];
        for(i=0;i<M;i++)
            a[i] = new double[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);
    
        for(i=0;i<M;i++)
           delete [] a[i];
        delete [] (a);
    
        return 0;
    }

    main函数中a的定义有点问题,改成了动态二维数组

     

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题