2023年5月17日记录

一群人坐在一起,每人猜一个 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>
int main(){
int sum=0,i,j,n,cnt[10001];//cnt用于记录数字
char ch[10001][9];//ch用于记录名字
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
scanf("%s %d",&ch[i],&cnt[i]);
sum+=cnt[i];
}
sum=sum/n/2;//求出平均数的一半
printf("%d ",sum);//先输出sum
int min,flag=0;//min记录最小差值,falg记录名字的下标
min=cnt[0]-sum;
if(min<0){
min*=-1;//取绝对值
}
for(i=0;i<n;i++){
j=cnt[i]-sum;
if(j<0){
j*=-1;//取绝对值
}
if(j<min){
flag=i;
min=j;
}
}
printf("%s",ch[flag]);
}

posted @ 2023-05-17 21:58  suN(小硕)  阅读(18)  评论(0编辑  收藏  举报