设计一个函数,该函数用于求一个任意大小的二维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;
}
/能不能帮我看看我的代码错在哪里呢?该怎么修改呢?谢谢您/

供参考:

#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;
}