练习1:编写程序,通过调用随机数给5*6数组进行赋10到40的值,求出二维数组每行元素的平均值
#include <stdlib.h>
#define N 5
#define M 6
void getdata(int (*sp)[M],double *a)
{
int i,j,x;
for(i=0;i<N;i++)
{
j=0;//列
while(j<M)
{
x=rand()%41;//得到40以内的随机数
if(x>10)
{
sp[i][j]=x;
j++;
}
}
}
}
//输出二维数组
void outdata(int (*sp)[M],double *a)//输出二维数组里面的元素
{
int i,j;
for(i=0;i<N;i++)
{
printf("第%d行元素:\n",i);
for(j=0;j<M;j++)
printf("%5d ",sp[i][j]);
printf("该行平均值:%8.2f",a[i]);
printf("\n");
}
}
void lineave(int (*sp)[M],double *a)//求每行的平均值
{
int i,j;
double ave;
for(i=0;i<N;i++)
{
ave=0;
for(j=0;j<M;j++)
ave+=sp[i][j];
a[i]=ave/N;
}
}
void main()
{
int a[N][M];//当用二维数组名做实参时,对应的形参是同类型的指针变量
double ave[N];
getdata(a,ave);
lineave(a,ave);
outdata(a,ave);
system("pause");
}
程序输出截图: