青年歌手大奖赛_评委会打分

青年歌手大奖赛_评委会打分

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 49680 Accepted Submission(s): 24837


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

Author
lcy

源代码一:
#include<stdio.h> 
#include<stdlib.h> 
int cmp ( const void *a , const void *b )   //我用了快排

    return *(double *)a -*(double *)b;//由小到大排序 

int main() 
{
    int n,i;
    double a[100],sum; 
    while(~scanf("%d",&n)) 
    { 
        sum=0; 
        for(i=0;i<n;i++) 
            scanf("%lf",&a[i]); 
        qsort(a,n,sizeof(a[0]),cmp); 
        for(i=1;i<n-1;i++) 
            sum+=a[i]; 
        printf("%.2lf\n",sum/(n-2));
    }
    return 0;
}
源代码二:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int a[100];
int main()
{
  int i,n,sum;
  int min,max;
  while(scanf("%d",&n) != EOF)
  {
    sum=0;
    memset(a,0,100);
    for(i=0;i<n;i++)
    {
      scanf("%d",&a[i]); 
      sum+=a[i];          
    }
    min=max=a[0];
    for(i=0;i<n;i++)
    {
      if(min>a[i])
        min = a[i];
      else if(max<a[i])
        max = a[i];               
    }  
    sum=sum-min-max; 
    printf("%.2lf\n",sum*1.0/(n-2));                  
  }
  system("pause");
  return 0;    
}

你可能感兴趣的:(printf,数据,测试)