题:
## 测试数据
3
-1 2 4
4
-2 -1 3 4
代码:
#include<iostream>
#include<cmath>
using namespace std;
int arr[10000001];//失分点1------子任务定义10^7,若没有会扣20分
int main(){
int inNum,max,midi,min;//中间值输出有整型
float midf;//中间值输出也有浮点型
int fi = 1;
cin>>inNum;
for(int i=0;i<inNum;i++){
cin>>arr[i];
}
if(inNum%2!=0){
midi = arr[(inNum+1)/2-1];
}//若有奇数个,中位数取中间值
else{
midf = (arr[inNum/2-1]+arr[inNum/2])/2.0;//若为偶数个,中间值取中间两者之和
if(midf-(int)midf == 0){
midi = (int)midf;
}//若取两者之和平均值为整数
else{
midi = (int)(midf*10.0+0.5);
midf = midi/10.0;//四舍五入获得小数点后一位
fi = 0;
}//若取两者中间值为小数,则保留一位
}
if(arr[0]>arr[inNum-1]){
max = arr[0];
min = arr[inNum-1];
}
else{
max = arr[inNum-1];
min = arr[0];
}//数组的大值给max,小值给min
if(fi == 1 ){
cout<<max<<" "<<midi<<" "<<min;
}
else{
cout<<max<<" "<<midf<<" "<<min;
}
return 0;
}