CSP-201903-1-小中大

小中大(传送门)

  一道水题,但是千万要注意临界值,你是不是85分O(∩_∩)O,你是不是吧中位数的计算写成了double类型,注意double 类型输出会报错,当数值太大时。会进行科学计数法,看我给出的案例:

输入:
4
1 10000000 10000000 10000000
错误输出:
10000000 1e+007 1
正确输出:
10000000 10000000 1

满分代码

#include <bits/stdc++.h>

using namespace std;

int n;
int a[100005];

int main(){
    cin >> n;
    bool judge = false;
    for(int i = 1; i <= n; i++){
    	cin >> a[i];
	}
	
	int max,mid,min;

/*  按下面输出则扣15分,差点死了啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!
	double mid = 0.0;
	4
	1 10000000 10000000 10000000
	输出结果错误
	10000000 1e+007 1
*/
	if(n%2 == 0){
		mid = (a[n/2] + a[n/2+1])/2;
		if((a[n/2] + a[n/2+1])%2 == 1){
			judge = true;
		}
	}else{
		mid = a[(n+1)/2];
	}
	
	max = a[1] > a[n] ? a[1] : a[n];
	min = a[1] < a[n] ? a[1] : a[n];
	
	if(max <= mid){
  		int temp = max;
		max = mid;
		mid = temp;
	}
	if(judge){
		cout << max << " " << mid << ".5 " << min;
	}else{
		cout << max << " " << mid << " " << min;
	}
	
    return 0;
}

这里是题目O(∩_∩)O,欢迎大家留言,有空的话可以点个赞哦(#^ . ^#)

       试题编号:
201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
发布了80 篇原创文章 · 获赞 55 · 访问量 2176

猜你喜欢

转载自blog.csdn.net/weixin_44635198/article/details/104716112
今日推荐