7-2 歌唱比赛计分 (10 分) pta

  • Post author:
  • Post category:其他

设有10名歌手(编号为1-10)参加歌咏比赛,另有6名评委打分,每位歌手的得分从键盘输入,计算出每位歌手的最终得分(扣除一个最高分和一个最低分后的平均分),最后按最终得分由高到低的顺序输出每位歌手的编号及最终得分。

输入格式:

依次输入第1个歌手的6位评委打分(10分制,分数为整型,分数之间使用空格分隔),第2个歌手的6位评委打分…以此类推。

输出格式:

参照输出示例,按最终得分由高到低的顺序输出每位歌手的编号及最终得分(最终得分保留2位小数)。

输入样例:

1 4 7 3 6 3
8 7 8 5 9 8
7 5 6 8 5 4
7 6 7 5 6 5
3 5 6 7 5 5
7 7 7 8 9 6
7 7 6 7 6 8
9 4 3 7 3 6
4 8 6 7 5 8
8 7 8 8 9 8

输出样例:

No.10: 8.00
No.2 : 7.75
No.6 : 7.25
No.7 : 6.75
No.9 : 6.50
No.4 : 6.00
No.3 : 5.75
No.5 : 5.25
No.8 : 5.00
No.1 : 4.00

#include<stdio.h>
struct p
{
int num;
float score;
}a[10],t;
int main()
{
	int i,j;
	float max,min,x;
	for(i=0;i<10;++i)
	{
		max=-1;
		min=11;
		a[i].score =0;
		for(j=0;j<6;++j)
		{
			scanf("%f",&x);
			a[i].score +=x;
			if(x>max)
				max=x;
			if(x<min)
				min=x;
		}
		a[i].num =i+1;
		a[i].score =a[i].score -max-min;
	}
	for(i=0;i<9;++i)
		for(j=i+1;j<10;++j)
			if(a[i].score <a[j].score )
			{
			t=a[i];
			a[i]=a[j];
			a[j]=t;
			}
			for(i=0;i<10;++i)
				printf("No.%-2d: %.2f\n",a[i].num ,a[i].score/4 );
return 0;
}

版权声明:本文为m0_46553277原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。