求二维数组每行元素的平均值。(使用指向数组的指针编写)

2024-12-04 10:48:25
推荐回答(1个)
回答1:

#include

void f(int (*p)[5],float *q)
{
int i,j;
for(i=0;i<=5;i++)//这一行越界了 改成 for(i=0;i<5;i++)
for(j=0;j<=5;j++)//这一行越界了 改成for(j=0;j<5;j++)
{
*(q+i)+=*(*(p+i)+j);
}
}

void main()
{
int a[5][5],i,j;
int (*p)[5]=a;
float sum[5],*q=sum;//这里最好初始化,改成float sum[5]={0},*q=sum;
//数组初始化元素数量小于数组的大小,其他都为0。
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
scanf("%d",&a[i][j]);
f(a,sum);
for(i=0;i<=4;i++)
printf("第%d行的平均值为:%f\n",i+1,sum[i]/5);
}