ccf-小中大(很简单,但我确没有把输出内容,看完,导致没有100分。哭了,这个题目对输出分情况有要求)
程序员文章站
2024-03-17 21:30:28
...
思路不说,很简单啊, 我就说我的答案。
题目说如果中位数是整数,就要以整数输出,如果不是,那么就保留一个小数输出,注意这个情况就行。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main(){
int i,n;
int a[100001];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int max,min;
double m=0;//题目说如果中位数是整数,就要以整数输出,如果不是,那么就保留一个小数输出,注意这个情况就行。
int t;
int flag=0;
if(n%2==0){
if((a[n/2]+a[n/2-1])%2==0){
t=(a[n/2]+a[n/2-1])/2;
flag=1;
}else{
m=(a[n/2]+a[n/2-1])*1.0/2;
flag=2;
}
}else {
t=a[n/2];
}
if(a[0]>a[1]){
max=a[0];
min=a[n-1];
}else {
max=a[n-1];
min=a[0];
}
if(flag!=2)
printf("%d %d %d",max,t,min);
if(flag==2)
printf("%d %.1lf %d",max,m,min);
return 0;
}