PTA统计一批学生的平均成绩与不及格人数显示人数较多,但没有人不及格的错误显示。

本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。

输入格式:
    输入在一行中给出一系列非负实数,其间以空格分隔。当读到负实数时,表示输入结束,该数字不要处理。

输出格式:
按照以下格式输出:

Average = 成绩均值
Count = 不及格人数
其中平均值精确到小数点后两位,等号的左右各有一个空格。

输入样例1:
67 88 73 54 95 60 0 -1
输出样例1:
Average = 62.43
Count = 2
输入样例2:
-100 90 80 0
输出样例2:
Average = 0.00

话不多说上代码:

#include<stdio.h>
int main()
{
    double a,sum=0,n=0;int k;
    for(k=0;;n++)
    {
        scanf("%lf",&a);
        if(a<0||a>100)break;
        if(a>=0&&a<60){k++;}
        sum=sum+a;
    }
    if(n==0)printf("Average = 0.00");
    else printf("Average = %.2f",sum/n);
    if(k>0)printf("\nCount = %d",k);
    return 0;
}

请教各位大佬~

#include
int main()
{
double a,sum=0,n=0;int k;
for(k=0;;n++)
{
scanf("%lf",&a);
if(a100)break;
if(a>=0&&a sum=sum+a;
}
if(n>0)
{
printf("Average = %.2f",sum/n);
if(k>=0)
printf("\nCount = %d",k);
}
else printf("Average = 0.00");//没有学生时count不输出
return 0;
}

第二次输入一个-100,然后break,k还是0,当然什么都没输出,一步步调试就出结果了

这个学生多,还是输不出呀

#include<iostream>
using namespace std;
int main()
{
    double a,sum=0,n=0;int i;
    for(i=0;;n++)
    {
        cin>>a;
        if(a>=0&&a<60){i++;}
        if(a<0||a>100)break;
        sum=sum+a;
    }
    if(n==0)cout<<"Average = 0.00"<<endl;
    else cout<<fixed<<setprecision(2)<<"Average = "<<sum/n<<endl;
    if(i>=0&&n!=0)cout<<"Count = "<<i<<endl;
    return 0;
}
 

14行改成if(k>=0&&n!=0)printf("\nCount = %d",k);