用c++实现
这个题逻辑不难,但是格式要求就很刁钻。最大最小数比较数组第一个和最后一个就可以了。但是中位数要求是整数时,必须转换为int型输出,不然会扣分。
还有,三个数不用比较大小,按max,middle,min输出即可,因为输入是有顺序的。
我用了数组,数组大小不影响结果。
代码如下
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n]={0};
int max=0;
int min=0;
float middle=0.0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
if(a[0]>a[n-1])
{
max=a[0];
min=a[n-1];
}else
{
max=a[n-1];
min=a[0];
}
if(n%2==0)
{
middle=(a[(n-1)/2]+a[n/2]);
if((int)middle%2!=0)
cout<<max<<" "<<middle/2.0<<" "<<min<<endl;
else
cout<<max<<" "<<(int)(middle/2)<<" "<<min<<endl;
}
else
{
cout<<max<<" "<<(int)a[n/2]<<" "<<min<<endl;
}
}