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

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条回答

  • qq_37659828 値訁 2年前

    刚搞完,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;
    }
    
    
    点赞 评论 复制链接分享
  • weixin_44417475 ღ橘子ღ 2年前

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

    点赞 评论 复制链接分享

相关推荐