代码一(会输出nan)
c++中nan,inf详解
分母可能为0,所以加上一个判断
#include <iostream>
#include<cmath>
using namespace std;
double n,avg=0;
int cnt=0,f=0;
int main()
{
while(~(scanf("%lf",&n))&&n>=0){
avg+=n;
f++;
if(n<60) cnt++;
}
printf("Average = %.2lf\n",avg/f);
if(cnt){
printf("Count = %d\n",cnt);
}
}
代码二(正确)
f代表有无学生,如果有学生,则正常求平均值,如果没有的话,用默认的avg的值0.00
如果有学生,就输出cnt数量 ※,没有学生的话不显示
#include <iostream>
#include <cmath>
using namespace std;
double n,avg=0;
int f=0,cnt=0;
int main()
{
while(~(scanf("%lf",&n))&&n>=0){
avg+=n;
f++;
if(n<60) cnt++;
}
if(f) avg=avg/f;//有学生
printf("Average = %.2lf\n",avg); //没有的话就输出avg的初始值 0
if(f) printf("Count = %d\n",cnt);
/
}