PTA練習:猜數字(C語言,通俗解法)
阿新 • • 發佈:2018-12-16
一群人坐在一起,每人猜一個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。
輸入格式:
輸入在第一行給出一個正整數N(≤104)。隨後 N 行,每行給出一個玩家的名字(由不超過8個英文字母組成的字串)和其猜的正整數(≤ 100)。
輸出格式:
在一行中順序輸出:大家平均數的一半(只輸出整數部分)、贏家的名字,其間以空格分隔。題目保證贏家是唯一的。
輸入樣例:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
輸出樣例:
22 Amy
#include <stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
char name_deposit[10000][9];
//儲存名字
int N, n, i, mD_value, sum = 0, num_deposit[10000];
//差值mD_value 儲存num
double ave;//也可以為int型
scanf("%d", &N);
for (i = 0; i < N; i++)//將輸入的name與num儲存,首項開始1-1對應
{
scanf ("%s %d", name_deposit[i], &num_deposit[i]);
sum += num_deposit[i];
ave = sum / (2 * N);
}
mD_value = fabs(num_deposit[0] - ave);//將第一個num與ave的差值作為最小
for (i = 0; i < N; i++)
if (fabs(num_deposit[i] - ave) <= mD_value)//比較差值大小
{
n = i;//對應的位置
mD_value = fabs(num_deposit[i] - ave);
}
printf("%.0lf %s\n", ave, name_deposit[n]);
return 0;
}