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

#include<stdio.h>voidf(int(*p)[5],float*q){inti,j;for(i=0;i<=5;i++)for(j=0;j<=5;j++){... #include <stdio.h>

void f(int (*p)[5],float *q)
{
int i,j;
for(i=0;i<=5;i++)
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;
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);
}
求解哪里错了,输出结果一大堆数字
展开
 我来答
ly10604828
2015-05-31 · TA获得超过1465个赞
知道小有建树答主
回答量:341
采纳率:100%
帮助的人:358万
展开全部
#include <stdio.h>

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);
}
更多追问追答
追问
初始化之后前面几行的值出来了,但是最后一行的值仍然爆炸。。。请问哪里还有问题吗?
追答

我运行结果正常啊。最上面几行越界的错误也改了吗?

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式