怪痴梦 2024-08-31 21:04 采纳率: 100%
浏览 11
已结题

201903-1:小中大CSP测试80,求改进

201903-1:小中大CSP测试80,求满分代码改进

img

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int n,  i;
    cin >> n;
    int a[100000];
    for (i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    int max = a[n - 1];
    int min = a[0];
    double mid;
    if (a[0] > a[n - 1])
    {
        max = a[0];
        min = a[n - 1];
    }
    if (n % 2 == 1)
    {
        mid = a[n / 2];
        cout << max << " " << int(mid) << " " << min;
    }
    if (n % 2 == 0)
    {
        mid = (a[n / 2] + a[n / 2 - 1]) / 2;
        if ((a[n / 2] + a[n / 2 - 1]) % 2 == 0)
        {
            cout << max << " " << int(mid) << " " << min;
        }
        else
        {
            cout << max << " " << fixed << setprecision(1) << mid << " " << min;
        }
        
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • P2441M 2024-09-01 21:32
    关注
    #include<iostream>
    #include<iomanip>
    using namespace std;
    int main()
    {
        int n,  i;
        cin >> n;
        int a[100000];
        for (i = 0; i < n; i++)
        {
            cin >> a[i];
        }
        int max = a[n - 1];
        int min = a[0];
        double mid;
        if (a[0] > a[n - 1])
        {
            max = a[0];
            min = a[n - 1];
        }
        if (n % 2 == 1)
        {
            mid = a[n / 2];
            cout << max << " " << int(mid) << " " << min;
        }
        if (n % 2 == 0)
        {
            mid = (a[n / 2] + a[n / 2 - 1]) / 2.0; // 改成 2.0。不然整数除以整数自动下取整,结果错误。
            if ((a[n / 2] + a[n / 2 - 1]) % 2 == 0)
            {
                cout << max << " " << int(mid) << " " << min;
            }
            else
            {
                cout << max << " " << fixed << setprecision(1) << mid << " " << min;
            }
            
        }
        return 0;
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 修改了问题 9月1日
  • 修改了问题 9月1日
  • 展开全部