|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
- // 一群人坐在一起,每人猜一个 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;
- }
复制代码
|
|