// 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int i, N, t = 0, num[10000], sum = 0;
float half, min, eve, c[10000];
char ch, name[10000][10];
scanf("%d", &N); // 猜数字的人数
getchar(); // 吸收回车
for (i = 0;i < N;i++)
{
while ((ch = getchar()) != ' ')
{
name[i][t] = ch; // 猜数字人的名字
t++;
}
name[i][t] = '\0';
scanf("%d", &num[i]); // 所猜的数字
getchar(); // 吸收回车
t = 0;
}
for (i = 0;i < N;i++)
{
sum += num[i];
}
eve = 1.0 * sum / N; // 所猜全部数字的平均值
half = eve / 2; // 平均值的一半
for (i = 0;i < N;i++)
{
c[i] = fabs(num[i] - half);
}
min = c[0];
for (i = 1; i < N; i++)
{
if (min > c[i])
{
min = c[i];
t = i;
}
}
printf("The half of number is %d, ", (int)half);
printf("Winner is %s, the number is %d\n", name[t], num[t]);
return 0;
}
|