代碼一(會輸出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);
/////////////////
}