输出的结果一直不对,不知问题出在哪

本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。
输入格式:
输入在第一行中给出非负整数n,即学生人数。第二行给出n个非负实数,即这n位学生的成绩,其间以空格分隔。
输出格式:
average = 成绩均值
count = 不及格人数
其中平均值精确到小数点后两位,等号的左右各有一个空格。
输入样例1:
4
60 54 95 73
输出样例1:
average = 70.50
count = 1
输入样例2:
0
输出样例2:
average = 0.00
count = 0

int main() {
int n, i;
double score, average;
double m = 0;
int count = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
scanf("%d", &score);
m += score;
if (score < 60) {
count++;
}
}
average = m/n;
printf("average = %.2lf\ncount = %d\n", average, count);
return 0;
}

img

scanf读取分数那里的说明符不对,把%d改为%lf就可以了,因为score是double型变量。

#include <stdio.h> 
int main() {
    
    int n, i;
    double score, average;
    double m = 0;
    int count = 0;
    scanf("%d", &n);
    
    for (i = 1; i <= n; i++) {
        scanf("%lf", &score);
    //    printf("score=%d\n",score);
        m += (double)score;
    //    printf("m=%lf\n",m);
        if (score < 60) {
            count++;
        }
    }
    
    
    
    average = (double)m/n;
    printf("average = %.2lf\ncount = %d\n", average, count);
    return 0;
}

img

你可以参考下这篇文章:输出所有可能的出栈顺序