题目我就不贴了。这个题目思路挺明确,不要想得太复杂。
#include <iostream>
using namespace std;
int main(){
int N,M;
int max,min,mid;
int k;
float t;
cin >> N;
cin >> M;
k = max = min = mid = M;
for(int i = 1;i < N;i++){
cin >> M;
if(max < M)
max = M;
if(min > M)
min = M;
if(i == (N / 2)) // N 为奇数时的中位数
mid = M;
if((i == (N / 2)) && (N % 2 == 0)){ // N 为偶数时的中位数
t = (k + M) / 2.0; // t 判断中位数为整数还是浮点数
mid = (k + M) / 2;
}
k = M;
}
if(t - mid == 0.5) // 说明中位数为浮点数
cout << max << " " << t << " " << min;
else
cout << max << " " << mid << " " << min;
return 0;
}