输出最高分数的学生姓名
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
输入格式
第一行输入一个正整数 N(N≤100)N(N≤100),表示学生人数。接着输入 NN 行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于 100100;
姓名为一个连续的字符串,中间没有空格,长度不超过 2020。
数据保证最高分只有一位同学。输出格式
获得最高分数同学的姓名。
Sample Input
5 87 lilei 99 hanmeimei 97 lily 96 lucy 77 jimSample Output
hanmeimei
题意描述:给学生的成绩和学生的姓名,输出成绩最高的学生名字
解题思路:
AC1 我用的结构体,存学生成绩和姓名,对比成绩,再存成绩高的学生名字,输出即可
AC2 用map存学生姓名和成绩,然后比较成绩,把成绩高记录,并把相对应的学生名字存入新的字符串 输出最高分的学生姓名即可
AC1:
#include<bits/stdc++.h>
using namespace std;
typedef struct student
{
char name[50];
int grade;
}STUDENT;
int main(void)
{
STUDENT stu,first;
int n,i,grade;
cin>>n;
first.grade = -1;
for(i=0;i<n;i++)
{
cin>>stu.grade>>stu.name;
if(stu.grade>first.grade)
first=stu;
}
cout<<first.name<<endl;
return 0;
}
AC2:
#include<stdio.h>
#include<map>
#include<iostream>
using namespace std;
int main(void)
{
map<string,int>x;
int n,m,max=-99;
char a[110];
scanf("%d",&n);
string s;
for(int i=1;i<=n;i++)
{
cin>>m>>a;
x[a]=m;
if(x[a]>max)
{
max=x[a];
s=a;
}
}
cout<<s<<endl;
return 0;
}