问题标题: 酷町堂:1153

0
0
已解决
梁逸凡
梁逸凡
资深守护
资深守护

题目描述 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

输出仅一行,输出这些数的中位数。

WA10

#include<iostream>
using namespace std;
int n,a[100001];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    } 
    if(n%2==1){
        cout<<a[n/2+1];
    }
    else{
        cout<<(a[n/2]+a[n/2+1])/2;
    }
    return 0;
}

 


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

判断前要先对数组排序

我要回答