其他的都常规来做,就是要注意中位数有可能是小数有可能是整数,小数时要输出小位数。这是我写的,也有100分但可能有点点复杂。
#include <iostream>
#include <iomanip>
using namespace std;
int a[20000000];
int main()
{
int n, max,min;;
void doubleMID(int n,int a[],int m,int t);
void intMID(int n,int a[] ,int m,int t);
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
max=a[0];
min=a[0];
for(int i=0;i<n;i++)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}
if(n%2==0){
if((a[n/2]+a[(n-1)/2])%2!=0)
doubleMID(n,a,max,min);
else intMID(n,a,max,min);}else cout<<max<<" "<<a[(n-1)/2]<<" "<<min<<endl;
return 0;
}
void doubleMID(int n,int a[],int m,int t)
{
double mid;
mid=((double)a[n/2]+(double)a[(n-1)/2])/2;
cout<<m<<" "<<setiosflags(ios::fixed)<<setprecision(1)<<mid<<" "<<t<<endl;
}
void intMID(int n,int a[],int m,int t)
{
int mid;
mid=(a[n/2]+a[(n-1)/2])/2;
cout<<m<<" "<<mid<<" "<<t<<endl;
}