题目
给出一个班级所有同学的成绩,请求出采用平均数和中位数作为班级成绩的差异。差异指的是两者差值的绝对值。
班级有 n 个同学,每个同学的成绩为 [0,100] 范围内的其中一个整数。成绩按照从小到大的顺序排列。
解题思路
成绩平均值:n 个同学的成绩之和除以 n。
成绩中位值:如果 n 是奇数,取中间的那个同学的成绩;如果 n 是偶数,取中间的两个同学成绩的平均值。
C++代码
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n;
cin >> n;
double sum = 0;
vector<int> score(n);
for(int i=0; i<n; ++i){
cin >> score[i];
sum += score[i];
}
double aver = sum / n;
double mid = 0;
if(n%2)
mid = score[n/2];
else
mid = (score[n/2-1]+score[n/2]) * 0.5;
int d = aver - mid;
if(d < 0)
d = -d;
cout << d << endl;
return 0;
} 
京公网安备 11010502036488号