怎样用C++编出可以求中位数的程序??

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:44:07
我不是电脑专业的,但却要学c++,虽然已经很努力了,但是天赋不够。苦啊!
问题同上,望高手指教!

这个是数学问题啊,不是C++问题啊,
将数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值
就按照这个写就是了
如果再不会的就补补基础

将数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

vector <int>v;

int main(){
int n,i,t;
cin>>n;
for(i=0;i<n;i++){
cin>>t;
v.push_back(t);
}
sort(v.begin(),v.end());
if(v.size()&1)
cout<<v[v.size()/2]<<endl;
else
cout<<(v[v.size()/2]+v[v.size()/2-1])/(double)2<<endl;
return 0;
}