CSP 2019年3月1题 小中大

CSP2019年3月1题

这题不难 ,但是有些小地方是需要我们注意的,以及需要我们熟练掌握基础知识
当时 有些问题其实自己就纠结了一会,然后一些细节没有做好,导致代码比较繁杂,因此现在对之前有做了一定的修改

试题编号: 201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 512.0MB

CSP 2019年3月1题 小中大_第1张图片
CSP 2019年3月1题 小中大_第2张图片
CSP 2019年3月1题 小中大_第3张图片

#include
using namespace std;

int main()
{
    int n;
    int max,min;
    double mid;
    int array[100100];

    cin>>n;
    for(int i=0;i<n;i++)
        cin>>array[i];

    if(array[0]>=array[n-1])
    {
        max=array[0];
        min=array[n-1];
    }
    else
    {
        max=array[n-1];
        min=array[0];
    }

    if(n%2==1)
    {
        mid=array[n/2];
        cout<<max<<" "<<(int)mid<<" "<<min;
    }
    else
    {
        mid=(1.0/2)*(array[n/2]+array[n/2-1]);
        if(mid-(int)mid==0)//说明整除 要输出整数
           cout<<max<<" "<<(int)mid<<" "<<min;
        else //输出小数即可
            printf("%d %0.1f %d\n",max,mid,min);
    }
    return 0;
}

注意

  1. 判断是否为奇数个 n%2==1

  2. 当为偶数个时

    取中位数,直接计算 mid=(1.0/2)*(array[n/2]+array[n/2-1]);

    然后判断是否为整除

  3. 输出最后结果时 忘记怎么用cout输出格式化小数 就用的是 printf

  4. mid 类型为 double 当结果要求为整数时 强制转化 (int)double

  5. 万能头文件 #include

你可能感兴趣的:(CSP 2019年3月1题 小中大)