码迷,mamicode.com
首页 > 其他好文 > 详细

歌手比赛

时间:2017-12-10 11:32:41      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:div   bsp   printf   col   ble   main   size   []   clu   

歌手大赛的评分规则一般是去掉一个最高分,去掉一个最低分,剩下的分数求平均。

 

当评委较少的时候,如果我们只允许去掉一个分数,该如何设计规则呢?

 

有人提出:应该去掉与其余的分数平均值相差最大的那个分数。即"最离群"的分数。

 

以下的程序用于实现这个功能。其中数组x存放所有评分,n存元素的个数。

 

函数输出最"离群"的那个分数值。请补全缺失的代码。

 

比如 1,2,3,4,5五个数

  双重for循环表示: (2+3+4+5) + (1+3+4+5) + (1+2+4+5) + (1+2+3+5) +(1+2++3+4)

#include <stdio.h>+

int main()
{
    double x[]={7,8,9.2,8.5,7.5,10.1,8.6,9.5,8,6.6};
    int n=sizeof(x)/sizeof(x[0]);

    double bad,sum,t;
    double dif=-1;
    
    for (int i=0;i<n;i++) 
    {
        sum = 0;
        for (int j=0;j<n;j++) 
        {
            if (j!=i)
                sum += (x[j]/(n-1));  //核心
        }
        t = x[i]-sum/(n-1);
        if (t<0)  t=-t;
        if (t>dif) 
        {
            dif = t;
            bad = t+sum/(n-1);    //核心
        }
    }
    printf("%.1f\n",bad);
    return 0;
}

 

歌手比赛

标签:div   bsp   printf   col   ble   main   size   []   clu   

原文地址:http://www.cnblogs.com/fzuhyj/p/8016264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!