话不多说,上代码:
#include<stdio.h>
#include<math.h>
struct person{
char s[8];
double cai;
};
int main()
{
int n;
scanf("%d",&n);
struct person a[n];
int i,j=0;
double k=0;
for(i=0;i<n;i++)
{
scanf("%s %lf",a[i].s,&a[i].cai);
k=k+a[i].cai;
}
k=k/n*1/2;
for(i=0;i<n;i++)
{
a[i].cai=a[i].cai-k;
if(a[i].cai<0)
a[i].cai=-a[i].cai;
}
for(i=1;i<n;i++)
{
if(a[j].cai>a[i].cai)
j=i;
}
printf("%.0f %s",k,a[j].s);
return 0;
}
本人比较菜,思路如下,输入输出不必说,先求出每个数与所猜的数的平均值的差的绝对值,然后对绝对值进行比较,绝对值最小的一组即为题目所求,输出整数部分,这里用到%.0f,以上便是对代码的解释说明。