2456: 评委打分


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 318  

Solved: 68

[

​Submit​​][

​Status​​][

​Web Board​​]


Description


 一个歌唱比赛,比赛每次会从观众中随即抽取几名观众给分(观众至少有5个,分数为0~10分),由于观众感情色彩较重,不能像评委那般全部作数,所以赛方想出去掉2个最高分与2个最低分,剩下的取平均值作为一名选手的分数(分数取整,四舍五入),赛方无暇来做这个程序,于是来找你帮忙。



Input


刚开始,输入T,表示有T名选手参赛,跟着一个数n,为抽取的n名评委,接下来n个数为各评委的评分。


Output


输出第几名选手的平均分,每两名选手间有空行间隔(最后一名后没有)。


Sample Input

2
5 0 10 5 4 4
7 5 4 6 2 3 0 3

Sample Output

Num 1:4

Num 2:3

AC代码:


#include <stdio.h>
#include <stdlib.h>

int main()
{
int t;
scanf("%d",&t);
int t0=t;
while(t)//T组数据
{

int i,j,n,a[50];
int sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
//冒牌排序,从小到大排序
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
//当时在这里加了一个百分号,找了好久没发现什么问题。以后一定要细心。
{
int t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}

}
for(i=2;i<n-2;i++)//排序后的数组,去掉两个最大最小值
sum+=a[i];
t--;
printf("Num %d:%.0f\n",t0-t,(float)sum/(n-4));//题目要求分数取整,四舍五入
if(t0-t!=t0)//不是最后一个,即输出一换行
printf("\n");
}
return 0;
}

这道题由于粗心有个小问题看了好久没有发现,最后才发现是一个逗号的问题,以后要特别注意。