#include<stdio.h>
int main()
{
int N,count,score,i,sum=0;
count=0;
double average;
scanf("%d",&N);
for(i=1;i<=N;i++){
scanf("%d",&score);
sum=sum+score;
}
average=sum/N;
do{
count++;
}while(score>=60);
printf("average=%.1f\ncount=%d",average,count);
return 0;
}
我只看出了几个问题,
sum,N是整型,相除结果还是整型,没有小数部分,存放到double类型的average中小数部分全是0
double类型数据用%lf输出比较好
do-while循环条件是取决于最后一次输入的score,我觉得这个地方欠缺合理性
修改如下,供参考:
#include<stdio.h>
int main()
{
int N, count, score, i, sum = 0;
count = 0;
double average;
scanf("%d", &N);
for (i = 1; i <= N; i++) {
scanf("%d", &score);
if (score >= 60) count++;
sum = sum + score;
}
average = 1.0 * sum / N;
printf("average=%.1f\ncount=%d", average, count);
return 0;
}