Problem Description
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。
Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
Sample Input
3 99 98 97 4 100 99 98 97
Sample Output
98.00 98.50
/* #include <stdio.h> int main() { int n,i; double z,x,sum,a,b; while (scanf("%d",&n)!=EOF) { sum=0; z=0; for (i=0;i<n;i++) { scanf("%lf",&x); sum = x+sum; } z = sum/n; printf("%.2lf\n",z); } return 0; } */ #include<stdio.h> int main() { int n,j,t,i; double f,a[100],sum;// 数组f和变量sum声明为double型的 while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%lf",&a[i]); for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } sum=0.0;//每次sum都要初始化为0.0 for(i=1;i<n-1;i++) { sum+=a[i]; } f=sum/(n-2); printf("%.2lf\n",f); } return 0; }
这段排序的代码值得好好学习;两个循环,就可以直接排序了。很好用。
for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
Problem Description
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。
Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
Sample Input
3 99 98 97 4 100 99 98 97
Sample Output
98.00 98.50
时间: 2024-10-11 03:14:12