#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;
}
想知道哪里错了,求大于平均数的数,函数版本
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 这里错了,不是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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
- ¥15 NRF24L01能发送但是不能接收
- ¥15 想问一下这种情况怎么解决呢(关键词-file)