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

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的定义有点问题,改成了动态二维数组