【CCF历年题题解】201903-1 小中大

还是有很多坑的,如果不能一次做对,建议检查一下自己的严谨思维。

#include <iostream>
#include <algorithm>
#include <cstdio>

using namespace std;

const int N = 100010;

int n;
int q[N];

int main()
{
    
    
    cin >> n;
    for(int i=0;i<n;i++) cin >> q[i];
    
    if(q[0]>=q[n-1])
    {
    
    
        printf("%d ",q[0]);
        
        if(n % 2) printf("%d ",q[n/2]);
        else // 中位数是偶数
        {
    
    
            int mid = q[n/2 - 1] + q[n/2];
            if(mid % 2 == 0) printf("%d ",mid / 2); // 整数
            else printf("%.1lf ",1.0 * mid / 2); // 整数转浮点数
        }
        
        printf("%d",q[n-1]);
    }
    else
    {
    
    
        printf("%d ",q[n-1]);
        
        if(n % 2) printf("%d ",q[n/2]);
        else // 中位数是偶数
        {
    
    
            int mid = q[n/2 - 1] + q[n/2];
            if(mid % 2 == 0) printf("%d ",mid / 2); // 整数
            else printf("%.1lf ",1.0 * mid / 2); // 整数转浮点数
        }
        
        printf("%d",q[0]);
    }
    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43154149/article/details/108003289
今日推荐