班上最近组织了一场考试。分数改出来了。
但是发现有几位同学缺考,缺考的同学不会被计入参加考试人数。
现在请你统计班上的平均分。
你的程序将会输入两行,第一行包含一个整数n,表示班级总人数。
接下来n个空格隔开的浮点数,表示每位同学的考试分数,其中缺考的同学被标记为0分。
n≤60
你的程序输出仅一行,表示这场考试的班级平均分,答案保留2位小数。
5
95 92 97 0 94
94.50
有一位同学缺考,参加考试的四位同学平均分94.5
累加所有的成绩,并统计0的个数,用总成绩除以(n减去0的个数)求平均值
代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n, cnt = 0;
float sum = 0;
float t;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> t;
if (0 == (int)t)
cnt++; //0分的个数
else
sum += t;
}
cout << fixed << setprecision(2) << sum / (n - cnt);
return 0;
}
思路是用一个double类型的avg去存储总分,用cnt存储非缺考的同学,最后用avg/cnt即可得到平均分,代码如下:
double avg = 0.0 ,f[60];
int ans = 0;
int x;
scanf("%d",&x);
for(int i = 0 ; i < x ; i++)
scanf("%d",&f[i]);
for(int i = 0 ; i < x; i++){
if(f[i] != 0){
cnt++;
avg += f[i];
}
printf("%.2f",avg/cnt);
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!