压岁钱c++刚需求解

压岁钱

【问题描述】

春节时期,同学们都收到了很多的压岁钱(整数),现在小童想知道班上压岁钱最多的同学,请你来帮他编程实现。

输入:第一行为一个数字n(0<n<50),表示班上有n名同学的信息。

       接下来有n行,每行包括同学的姓名和压岁钱数,以空格隔开。

输出:一行或多行,表示压岁钱最多的人的姓名和钱数,以空格隔开。若有多名同学并列第一,则以多行展示并输出结果。

【样例输入】

5

zhangze 380

zhuhaomiao 1250

tiansen 2500

zhaoyatao 6666

yangxueqing 6666

【样例输出】

zhaoyatao 6666

yangxueqing 6666压岁钱

【问题描述】

春节时期,同学们都收到了很多的压岁钱(整数),现在小童想知道班上压岁钱最多的同学,请你来帮他编程实现。

输入:第一行为一个数字n(0<n<50),表示班上有n名同学的信息。

       接下来有n行,每行包括同学的姓名和压岁钱数,以空格隔开。

输出:一行或多行,表示压岁钱最多的人的姓名和钱数,以空格隔开。若有多名同学并列第一,则以多行展示并输出结果。

【样例输入】

5

zhangze 380

zhuhaomiao 1250

tiansen 2500

zhaoyatao 6666

yangxueqing 6666

【样例输出】

zhaoyatao 6666

yangxueqing 6666

#include<stdio.h>

int main()
{
    int n,j,i;
    scanf("%d",&n);
    char name[50][50];
    int t[50];
    for(j=0; j<n; j++)
    {
        scanf("%s %d",name[j],&t[j]);
    }
    int max=t[0];
    for(j=1; j<n; j++)
    {
        if(t[j]>max)
        {
            max=t[j];
        }
    }
    for(j=0; j<n; j++)
    {
        if(t[j]==max)
        {
            printf("%s %d\n",name[j],t[j]);
        }
    }
    return 1;
}
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int n, money;
    string name;
    vector<pair<string, int>> a;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> name >> money;
        a.push_back({name, money});
    }
    auto itr = max_element(a.begin(), a.end(),
        [](const auto &lhs, const auto &rhs)
        { return lhs.second < rhs.second; });
    for_each(a.begin(), a.end(),
        [itr](const auto &v) {
            if (v.second == itr->second)
                cout << v.first << ' ' << v.second << '\n';
        });
    return 0;
}