题目分析:
该题是对一串有序数进行操作,即找出其中的最大数与最小数以及中位数,由于我在审题时没有注意到它给定的就是有序数,导致白白花费了 许多时间去使得数有序。所以审题一定要仔细,难度不算太大,和我之前预想的一样,题目的长度会变得越来越大。
C语言源程序:
#include<stdio.h>
int main()
{
int n,i;
float mid;
int max,min;
scanf("%d",&n);
int num[n];
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
if(num[0]<num[n-1])
{
min=num[0];
max=num[n-1];
}
else
{
min=num[n-1];
max=num[0];
}
if((n%2)==0)
{
mid=(float)(num[n/2]+num[n/2-1])/2;
//细节问题,值得注意
if((mid-(int)mid)==0)
{
printf("%d %d %d",max,(int)mid,min);
}
else
{
printf("%d %.1f %d",max,mid,min);
}
}
else
{
mid=num[n/2];
printf("%d %d %d",max,(int)mid,min);
}
return 0;
}