最公正的裁判
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。