PTA L1-056 猜数字

题目

一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家

输入格式:

输入在第一行给出一个正整数N(≤10​4​​)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。

输出格式:

在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。

输入样例:

7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62

输出样例:

22 Amy

解题思路

先排序再比较找出最接近平均数的一半的元素…
当然当只有一个人的时候要特殊考虑

AC代码

#include
#include
using namespace std;
struct node
{
    char name[10];
    float num;
};
node ww[10005];
bool cmp(node a,node b)
{
    return a.numww[t].num)
                ++t;
            else
                break;
        }//t为小于all的最后一个元素
        //printf("%d\n",t);
        if(tww[t].num-all)
                ++t;
        }
        printf("%.0f %s\n",all,ww[t-1].name);
    }
}

你可能感兴趣的:(天梯刷题)