本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于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);