第十二周笔记

这周我学到了数组的排序,看到2014题就用上了,真的是方便。

题目:

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

Input

输入数据有多组,每组占一行,每行的第一个数是n(2

Output

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

这道题的难度不大,我主要是用了数组的排序,就想发一下笔记。

Sample Input

3 99 98 97

4 100 99 98 97

Sample Output

98.00

98.50

下面是我的源代码:


#include

main()

{

int a[100];

int n,i,j,temp;

double score=0.00;

while(scanf("%d",&n)!=EOF)

{

if(n>2&&n<=100)

{

for(i=0;i

{

scanf("%d",&a[i]);//将评委的分数放进数组里

}

for(i=0;i

{

for(j=0;j

{

if(a[j+1]

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

score=0.00;

for(i=1;i

{

score=a[i]+score;//去掉最高分和最低分,求总分

        }

        score=score/(n-2);//求平均分

        printf("%.2lf\n",score);

}

}

小结:1.数组的排序主要有冒泡法和选择法,我这里使用的是冒泡法,算是很常用的方法;

2.冒泡法就是一个个的比较,小的上升,大的下沉;

3.当数值小时,就通过中间值来交换两者的位置。

你可能感兴趣的:(第十二周笔记)