1
已解决
谭迪元
资深光能
资深光能
题目描述 Description
在数据分析中,除了用平均数表示一系列数据的平均水平外,还可以用中位数来表示。中位数的定义是:中位数就是在一连串已由小到大排序的数字中,排在中间的那一个数。例如:在 {1,3,4,9,11}中4就是中位数。若有偶数个数字,我们定义中位数就是位于中间的那2个数的和除以2(而且只取整数部分)。例如:在{1,2,3,6,7,8}中{3,6}是位于中间的2个数,所以中位数就是(3+6)/2=4。
输入描述 Input Description
输入第一行为一个整数N(N<=30000),表示有N个整数。 从第二行开始,有N个整数(每个整数都不超过1000000000),两个数之间用空格隔开。
输出描述 Output Description
输出仅一行,输出这些数的中位数。
样例输入 Sample Input
6 1 3 4 2 3 27
样例输出 Sample Output
3
#include<bits/stdc++.h>
using namespace std;
int n,a[30005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
if(n%2==0){
cout<<(a[(n-1)/2]+a[(n/2)])/2;
}
else{
cout<<a[(n-1)/2];
}
return 0;
}
样例都过不了
谭迪元在2021-11-17 20:08:51追加了内容
dingdingdingdingdingdingdingdingdingdingdingdingdingdingdingdingdingding