CSP:小中大 原题链接 满分代码 #include <bits/stdc++.h> #define N 100001 using namespace std; int a[N]; int main() { int n; cin >> n; for (int i = 0; i < n; ++i) { cin>>a[i]; } int Max, Mid, Min; Max = max(a[0], a[n - 1]); Min = min(a[0], a[n - 1]); if (n % 2 == 1) { Mid = a[ n / 2]; printf("%d %d %d\n", Max, Mid, Min); } else { double mMid; int p = a[n / 2]; int q = a[n / 2 - 1]; if (abs(p + q) % 2 == 1) { // 中间两个数的和为奇数会出现分数,C++向0取整 mMid = (p + q) / 2.0 ; printf("%d %.1f %d\n", Max, mMid, Min); } else { Mid = (p + q) / 2; printf("%d %d %d\n", Max, Mid, Min); } } return 0; }