2019年ccf第一题代码求解?

2019年ccf第一题,我在code blocks上可以运行,并且答案是对的,为什么在ccf上说我运行错误?本人菜鸟,希望有个大佬教我一下我哪里错了

  • 原题目图片说明

  • 我的代码:
    #include
    #include
    #include
    using namespace std;

int main()
{
int n,a[20]={0},x;
float maxn,midn,minn;
cin>>n;
for(int i=0;i {
cin>>a[i];//输入
}

maxn=minn=a[0];
for(int i=0;i<n;i++)
{
    if(a[i]>maxn)
    {
        maxn=a[i];//最大值
    }
}

for(int i=0;i<n;i++)
{
    if(a[i]<minn)
    {
        minn=a[i];//最小值
    }
}

//排序
sort(a,a+n);
if(n%2==0)
{
    x=n/2;
    midn=(a[x]+a[x-1])/2;
}
else if(n%2!=0)
{
    x=n/2;
    midn=a[x];
}
cout <<maxn<<" "<<midn<<" "<<minn<<endl;
return 0;

}

刚搞完,100
关键点:
cout<<setiosflags(ios::fixed)<<setprecision(precision)<<mid<<" ";

#include<iostream>
#include <iomanip>
using namespace std;

int main()
{  
    int n;
    cin>>n;
    int big;
    int smal;
    double mid;
    int precision=0;
    int *arr=new int[n];
    for(int i=0;i<n;i++)
    {
        cin>>arr[i];
    }
    if(arr[0]<arr[n-1])
    {
        smal=arr[0];
        big=arr[n-1];
    }
    else
    {
        smal=arr[n-1];
        big=arr[0];
    }
    if((n&1)==0)
    {     
        mid=(arr[n/2]+arr[n/2-1])/2.0;
        if(mid-(int)mid != 0)
        precision=1;
    }
    else
    {
        mid=arr[(n-1)/2];
    }
    cout<<big<<" ";
    cout<<setiosflags(ios::fixed)<<setprecision(precision)<<mid<<" ";
    cout<<smal<<" ";
    return 0;
}

题目要求四舍五入保留一位小数