【CCF】——小中大(分析)

在这里插入图片描述
在这里插入图片描述

有最小值、最大值、中位数,很容易想到从小到大排序,再者就是关于中位数的值,奇偶不一样,另一个需要注意的点就是题目中所说的“整数直接输出,涉及分数(其实也就是小数)的情况,四舍五入后保留一位小数输出”,所以偶数组中要判断中间两个数相加的奇偶性,四舍五入在这里完全没有必要考虑进去,因为如果和为奇数,/2.0之后一定是.500等的形式,保留一位小数正好是.5,所以直接按一位小数对其进行输出即可。
#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    
    
	int n;
	cin >> n;
	int a[n];
	for(int i = 0;i<n;i++){
    
    
		cin >> a[i];
	}
	sort(a,a+n);
	int mid1;
	double mid2;
	bool flag1 = false,flag2 = false;
	if(n%2==1){
    
    
		mid1 = a[n/2];
		flag1 = true;
	}
	else{
    
    
		int z = a[n/2-1] + a[n/2];
		if(z%2==0){
    
    
			mid1 = (a[n/2-1] + a[n/2])/2;
			flag1 = true;
		}
		else{
    
    
			mid2 = (a[n/2-1] + a[n/2])/2.0;
			flag2 = true;
		}
	}
	if(flag1){
    
    
		printf("%d %d %d",a[n-1],mid1,a[0]);
	}
	else if(flag2){
    
    
		printf("%d %.1lf %d",a[n-1],mid2,a[0]);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45845039/article/details/108558278
今日推荐