定义一个二维数组为形参,调用函数的实参表达式该如何
下面是一个4*5的矩阵2 6 4 9 -13
5 -1 3 8 7
12 0 4 10 2
7 6 -9 5 3
1:求所有的元素之和;
2:求出所有大于平均值的元素。
请教下面的程序把形参定义为一个“二维数组”应该怎么改动?
/*计算矩阵元素的平均值和他们的和*/
#include<stdio.h>
#include<conio.h>
int sum_ave(int m,int n,int arr[]);
void prt_up(int m,int n,float average,int arr[]);
main()
{
int A[4][5]={{2,6,4,9,-13},{5,-1,3,8,7},{12,0,4,10,2},{7,6,-9,5,2}};
int i=4,j=5,sum;
float ave;
sum=sum_ave(i,j,A[0]);
printf("the number of sum=%d\n",sum);
ave=(float)(sum)/(i*j);
printf("the number of average=%5.2f\n",ave);
prt_up(i,j,ave,A[0]);
}
/*计算矩阵元素值得和:*/
int sum_ave(int m,int n,int arr[])
{
int i;
int total=0;
for(i=0;i<m*n;i++)
total=total+arr[i];
return(total);
}
/*输出高于平均值的矩阵元素:*/
void prt_up(int m,int n,float average ,int arr[])
{
int i,j;
printf("the number of Bigger then average are:");
for(i=0;i<m;i++)
{
printf("\n");
for(j=0;j<n;j++)
if(arr[i*n+j]>average)
printf("arr[%d][%d]=%d\t",i,j,arr[i*n+j]);
}
}