站点图标 陌路寒暄

最公正的裁判

最公正的裁判

时间: 1ms        内存:128M

描述:

YTU APP比赛的裁判由7人组成。每位裁判参赛者提交的作品,给出0--100的一个整数分。每当评判完一位参赛者的app,就要评定哪位裁判的给分最公正。最公正的裁判给出的分和7位裁判给出的平均分最接近。现在任意给出一组裁判的打分,请编写程序评比出最佳裁判。如果有多位最公正裁判,只输出位次最靠前的裁判位次。注意:平均分只保留整数部分。

输入:

7位裁判的打分

输出:

最公正裁判的位次。如果有多位最公正裁判,输出位次最靠前的裁判位次。注意位次从 1 开始。

示例输入:

1 2 3 4 5 6 7

示例输出:

4

提示:

参考答案(内存最优[1092]):

#include <stdio.h>

int main()
{
    int a[7];
    int i;
    int ave,least=0,ik=0;
    //Read
    for (i=0;i<7;i++)
    {
        scanf("%d",&a[i]);
    }
    //MainCode
    ave=(int)((a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6])/7);
    least=fabs(a[0]-ave);
    ik=1;
    for (i=0;i<7;i++)
    {
        if (fabs(a[i]-ave)<least)
        {
            least=fabs(a[i]-ave);
            ik=i+1;
        }
    }
    printf("%d",ik);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
#define N 7
int abs(int a)
{
    if(a<0)
        return -a;
    return a;
}
int main()
{
    int score[N];
    int pos=0,avgscore=0;
    int i;
    for(i=0; i<N; i++)
    {
        cin>>score[i];
        avgscore+=score[i];
    }
    avgscore/=7;
    for(i=0; i<N; i++)
    {
        if(abs(score[i]-avgscore)<abs(score[pos]-avgscore))
            pos=i;
    }
    cout<<pos+1<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版