求二维数组每行元素的平均值。(使用指向数组的指针编写)
#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);
}
求解哪里错了,输出结果一大堆数字 展开
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);
}
求解哪里错了,输出结果一大堆数字 展开
1个回答
展开全部
#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);
}
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询