【C程改错】写函数 int fun(float *p,int n) , 功能:统计有n个数据的一维数组p中

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:31:46
编写函数 int fun(float *p,int n) , 功能:统计有n个数据的一维数组p中
大于平均值的数组元素个数.例如,若输入:3 5 6 1 2 8 9 6 输出: n=4 */

#include<stdio.h>
int fun(float *p,int n)
{
int i,j,sum=0;
float aver;
for(i=0;i<8;i++)
{
sum+=*p+i;
}
aver=sum/8.0;
n=0;
for(j=0;j<8;j++)
{
if(p[j]>aver)
n=n+1;
}
return n;

}
main()
{
float a[8];int n,i;
for(i=0;i<8;i++)
scanf("%f",&a[i]);
n=fun(a,8);
printf("n=%d\n",n);
}

这个程序哪儿错了??

#include<stdio.h>
int fun(float *p,int n)
{
int i,j,m;
float sum=0;
float aver;
for(i=0;i<n;i++)
{
sum+=*(p+i);
}
aver=sum/n;
m=0;
for(j=0;j<n;j++)
{
if(p[j]>aver)
m=m+1;
}
return m;

}
main()
{
float a[8];int n,i;
for(i=0;i<8;i++)
scanf("%f",&a[i]);
n=fun(a,8);
printf("n=%d\n",n);
}

在我这运行的没错误。

有一点不好的就是你的函数fun中变量sum的类型为int改为float好一点

sum+=*p+i;
sum+=*(p+i);

楼主,你感觉一样吗