描述
已知有n组数据分别表示各位同学的姓名和成绩,求分数最高的同学的姓名。
输入描述
从键盘输入n+1行,第1行为n,表示有多少组数据;
接下来的n行,输入姓名和成绩,姓名在前,分数在后;
姓名的长度不超过200,且不含空格
分数为整数,范围0~100分;
输出描述
输出分数最高同学的姓名
样例输入 1
5
mayun 88
dinglei 95
lilei 92
wangshan 98
chenhong 77
样例输出 1
wangshan
这道题用的知识是字符串和结构体,要用结构体存储学生姓名和成绩,其中姓名需要用“string”类型来定义,并且建立一个数组。
#include <bits/stdc++.h>
using namespace std;
struct stu{
string name;
int zzz;
}yuanshen[100];
int main(){
// 输入n
int n;
cin>>n;
// 输入的姓名/分数
for(int i=0;i<n;i++){
cin>>yuanshen[i].name>>yuanshen[i].zzz;
}
//找最高分
for(int i=0;i<n;i++){
for(int j=0;j<i;j++){
if(yuanshen[i].zzz<yuanshen[j].zzz){
swap(yuanshen[i].zzz,yuanshen[j].zzz);
swap(yuanshen[i].name,yuanshen[j].name);
}
}
}
// 输出最高分同学的姓名
cout<<yuanshen[n-1].name;
return 0;
}
注:结构体名称和变量名称不一定用这个代码里的,可以随意更改。