请认真读题认真读题认真读题
重要的事情说三遍
不然容易心态爆炸哦 
问题分析:
第一行先读取一个整数N,然后第二行读取N个整数(默认已经有序,所以不排序)
分别取最大值,最小值和中位数然后输出。
#include<iostream>
using namespace std;
int a[100005];
class Qu20190301{
private:
int N;
int max;
int min;
double median;//记录浮点型中位数
int median1; //记录整型中位数
public:
void ioput(){
cin>>N;
for(int i=1;i<=N;i++)//录入N个数据
cin>>a[i];
if(a[1]>a[2]){ //判断记录是否降序
max=a[1];
min=a[N];
}else{ //记录升序
max=a[N];
min=a[1];
}
if(N%2==0){ //如果N是偶数
if((a[N/2]+a[N/2+1])%2==0)//如果中位数的和是偶数,结果是整数,整数输出
cout<<max<<" "<<(a[N/2]+a[N/2+1])/2<<" "<<min;
else
cout<<max<<" "<<(a[N/2]+a[N/2+1])/2.0<<" "<<min; //中位数的和是奇数
}
else
cout<<max<<" "<<a[N/2+1]<<" "<<min;//如果N是奇数
}
};
int main(){
Qu20190301* o=new Qu20190301();
o->ioput();
}
测试数据:
example1:
3
-1 2 4
result1:
4 2 -1
example2:
4
-2 -1 3 4
result2:
4 1 -2
example3:
4
-1 -1 1 1
result3:
1 0 -1
example4:
4
-1 -1 0 1
result4:
1 -0.5 -1
example5:
4
0 0 1 1
result5:
1 0.5 0
避坑技巧:
1、N的限制:不是10^3,而是10^5(如果是10^3,得分20)
2、输出,你的格式应该是整数直接输出,浮点数保留一位小数输出(我第一眼看
到傻乎乎的去百度了C++中如何四舍五入小数点后第几位,后来发现分母是2,小
数点后只可能是0.5)。输出要分开浮点数和整数(不加区分,得分85)。
3.这题有点爆炸哦,看似简单,取暗藏杀机。不过对编程者是一种思维锻炼,很
考验思维的缜密。


这篇博客强调了在解决CCF CSP 201903-1问题时,仔细阅读题目至关重要。作者提醒读者避免心态崩溃,分享了问题分析、测试数据和实用的避坑技巧。
“附踩坑之后痛的领悟”&spm=1001.2101.3001.5002&articleId=103233156&d=1&t=3&u=4d77332793ce4dfdbc1b734bbf469117)
1456

被折叠的 条评论
为什么被折叠?



