题目
我的代码
#include <iostream>
#include<iomanip>
using namespace std;
int main(int argc, char *argv[])
{
int n,i;
double mid;
cin>>n;
int*a=new int[n];
for(i=0;i<n;i++)
cin>>a[i];
if(n%2==1)
mid=a[n/2];
else
mid=((double)a[n/2]+(double)a[n/2-1])/2;
if(a[0]>a[n-1])
{
cout<<a[0]<<" ";
if(mid==double(int(mid)))
cout<<int(mid);
else
cout<<fixed<<setprecision(1)<<mid;
cout<<" "<<a[n-1];
}
else
{
cout<<a[n-1]<<" ";
if(mid==double(int(mid)))
cout<<int(mid);
else
cout<<fixed<<setprecision(1)<<mid;
cout<<" "<<a[0];
}
return 0;
}
坑点
一开始是85分,然后各种查资料,各种想不通,然后发现是最后如果中位数输出时,如果是整数,要强转成整数输出,这个我自己测的时候测不出来,DEVcpp里面它打印小数如果是整数就是不打印3.0而是打印3,所以一直没发现,后来改了满分通过