题解:
printf
#include<bits/stdc++.h>
using namespace std;
const int N = 1000010;
int n;
int q[N];
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> q[i];
}
sort(q, q + n);
int minNum = q[0];
int maxNum = q[n-1];
if (minNum > maxNum)
{
swap(minNum, maxNum);
}
double mid = 0;
if (n % 2 == 0)
{
// 处理偶数个元素的情况
mid = (q[n / 2 - 1] + q[n / 2]) / 2.0;
if ((q[n / 2 - 1] + q[n / 2]) % 2 == 0) {
// 如果中位数为整数,输出整数
printf("%d %d %d\n", maxNum, (q[n / 2 - 1] + q[n / 2]) / 2, minNum);
} else {
// 否则输出小数部分
printf("%d %.1f %d\n", maxNum, mid, minNum);
}
}
else
{
// 处理奇数个元素的情况
mid = q[(n - 1) / 2];
printf("%d %.0f %d\n", maxNum, mid, minNum);
}
return 0;
}