#include<stdio.h>
int Average(int array[]);
int main()
{
int i=0,j=0;
int count=0;
int score=0;
int array[40];
int average=0;
while(scanf("%d",&score)!=EOF&&score>=0)
{
array[i]=score;
i++;
}
average=Average(array);
printf("%d\n",average);
for(j=0;j<i;j++)
{
if(array[i]>average)
{
count++;
}
}
printf("%d",count);
}
int Average(int array[])
{
int i=0,ret=0,sum=0;
while(array[i]!=0)
{
sum+=array[i];
i++;
}
ret=(sum/i);
return ret;
}
这里错了,不是array[i]
if(array[i]>average)
{
count++;
}
应该改为
if(array[j]>average)
{
count++;
}
还有计算平均值的代码有部分问题,平均值可能是浮点数,但是返回值是整型
整体代码进行了修改
#include<stdio.h>
double Average(int array[],int len);
int main()
{
int i=0,j=0;
int count=0;
int score=0;
int array[40];
double average=0;
while(scanf("%d",&score)!=EOF&&score>=0)
{
array[i]=score;
i++;
}
average=Average(array,i);
printf("%lf %d\n",average,i);
for(j=0;j<i;j++)
{
if(array[j]>average)
{
count++;
}
}
printf("%d",count);
}
double Average(int array[],int len)
{
int sum=0;
double ret;
for(int i = 0;i < len;i++)
{
sum+=array[i];
}
ret=(sum/(1.0 * len));
return ret;
}
array是整型数组,有不是字符数组,怎么判断不等于'\0'呢?