201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 512.0MB
问题描述:
中位数:将数据排序后,位置在最中间的数值.当样本数为奇数时,中位数=第(N+1)/2个数据 ; 当样本数为偶数时,中位数为第N/2个数据与第N/2+1个数据的算术平均值 .
(注意:不需要剔除重复的数据之后再计算中位数)
初中学过的中位数其实在现实中运用得很多,比如说一个公司的人员工资的中位数,肯定有很多人的工资是相同的呀!自己怎么就忘了定义呢。
错误的代码:只得了15分,原因是自己理解错了中位数的定义,所以解题过程不对(亏自己前几天还做了一道中位数的题目)
#include<iostream>
#include<vector>
using namespace std;
const int N = 100005;
int main()
{
float a[N]; vector<float> b;
int n;
cin>> n; cin >> a[0]; b.push_back(a[0]);
for (int i = 1; i < n; i++)
{
cin >> a[i];
if (a[i] != a[i - 1])
b.push_back(a[i])