1.求中位数的位置
先输入一个整形数字N,接着输入N个无序的数字。要求输出升序排列后的中位数,以及该中位数输入的次序。如果N为偶数,则输出有二个中位数,如果N为奇数,输出最中间的数即可。
样例1:
输入:5
9 2 7 1 6
输出:6 5
样例2:
输入:6
9 6 7 1 2 3
输出:3 6
6 2
#include<iostream>
using namespace std;
class strin
{
public:
int value;
int index;
};
int main()
{
strin s[100];
int n;
int i,j,t,k;
int a=0;
cout<<"请输入N"<<n<<endl;
cin>>n;
cout<<"请输入N个数"<<endl;
for(i=0;i<n;i++)
{
cin>>s[i].value;
s[i].index=a+1;
a=a+1;
}
for(j=0;j<n-1;j++)
for(k=0;k<n-1-j;k++)
if(s[k].value>s[k+1].value)
{
t=s[k].value;s[k].value=s[k+1].value;s[k+1].value=t;
}
cout<<" "<<endl;
if(n%2==0)
{ cout<<s[n/2-1].value<<" "<<s[n/2-1].index<<endl;
cout<<s[n/2].value<<" "<<s[n/2].index<<endl;}
else
{ cout<<s[n/2].value<<" "<<s[n/2].index<<endl;}
return 0;
}