weixin_44328838
2019-07-14 15:42
采纳率: 100%
浏览 607

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;

}

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 値訁 2019-08-05 00:34
    已采纳

    刚搞完,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;
    }
    
    
    评论
    解决 无用
    打赏 举报
  • 查看更多回答(1条)

相关推荐 更多相似问题