#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int res=-1;
int a[1001];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
if(n%2==0){
int m1,m2;
int s1=0;
int s2=0;
int g1=0;
int g2=0;
m1=a[n/2-1];
m2=a[n/2];
for(int i=0;i<n;i++){
if(a[i]<m1){
s1++;
}
if(a[i]<m2){
s2++;
}
if(a[i]>m1){
g1++;
}
if(a[i]>m2){
g2++;
}
}
if(s1==g1){
res=m1;
}else if(s2==g2){
res==m2;
}
}else{
int m;
int s=0;
int g=0;
int index=(n-1)/2;
m=a[index];
for(int i=0;i<n;i++){
if(a[i]<m){
s++;
}
if(a[i]>m){
g++;
}
}
if(s==g){
res=m;
}
}
cout<<res;
return 0;
}CCF中间数
最新推荐文章于 2022-02-27 13:46:39 发布
本文介绍了一种通过输入一组整数并对其进行排序后找出中位数的算法。该算法进一步判断了当数组长度为奇数或偶数时,如何通过比较小于等于及大于等于中位数的元素数量来确定最终的中位数。
1万+

被折叠的 条评论
为什么被折叠?



