ccf-csp计算机软件能力认证201903-1小中大(C语言版)
题目内容:
解题思路
此题唯一需要注意中位数的输出即可,首先分两种情况,第一是共n个数,n为奇数,则第(n+1)/2个数即为中位数;第二是共n个数,n为偶数,则第n/2和第n/2+1个数的平均数即为中位数,此时输出要分整数和小数两种情况,最后输出结果即可。
提交后得100分的C语言程序如下:
#include<stdio.h>
int main()
{
int n,i,max,min,mid;
scanf("%d",&n);
int s[n];
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
s[0]>s[n-1]?(max=s[0],min=s[n-1]):(max=s[n-1],min=s[0]);
if(n%2!=0) printf("%d %d %d",max,s[n/2],min);
else{
mid=(s[n/2]+s[n/2-1])*10/2;
if(mid%10==0) printf("%d %d %d",max,mid/10,min);
else printf("%d %.1f %d",max,(float)mid/10,min);
}
return 0;
}