鄙人不才,此中鄙陋甚多,望海涵!!!
小中大
注意精度问题
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e5+10;
int a[N];
int main()
{
int n;
cin>>n;
int ma=0,mi=0;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
if(a[1]>a[n]) ma=a[1],mi=a[n];
else mi=a[1],ma=a[n];
if(n&1)
{
int c=a[(n+1)/2];
printf("%d %d %d\n",ma,c,mi);
}
else
{
int w=a[n/2+1]+a[n/2];
if(w&1)
{
double c=w/2.0;//千万千万注意是2.0,不是2,因为如果是2的话,由于w也为int型,默认得到的c也是int型
//然后转为double型会丢失小数位加 .0,丢失精度!
printf("%d %.1lf %d\n",ma,c,mi);
}
else printf("%d %d %d\n",ma,w/2,mi);
}
return 0;
}