在某次考试中,五(2)班有学生n名,已知每位学生的姓名及他的语文成绩,求获得最高分数的学生的姓名。 (分数中有可能有同分的情况) 输入 第1行:整数n(n<=10)。 第2..n+1行:每行一个整数和字符串,分别表示第i名学生的成绩和姓名。 输出 若干行,每行一个字符串,表示按输入顺序输出的最高分学生姓名。请用C++编写一个程序
时间: 2024-04-21 17:23:00 浏览: 113
你好!以下是用C++编写的程序来解决你的问题:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Student {
int score;
string name;
};
int main() {
int n;
cin >> n;
vector<Student> students;
for (int i = 0; i < n; i++) {
Student student;
cin >> student.score >> student.name;
students.push_back(student);
}
int maxScore = students[0].score;
for (int i = 1; i < n; i++) {
if (students[i].score > maxScore) {
maxScore = students[i].score;
}
}
for (int i = 0; i < n; i++) {
if (students[i].score == maxScore) {
cout << students[i].name << endl;
}
}
return 0;
}
```
这个程序首先读取学生的数量n,然后依次读取每位学生的成绩和姓名,并将其存储在一个结构体数组中。接下来,程序通过遍历数组找到最高分数。最后,它再次遍历数组,输出所有获得最高分数的学生姓名。
希望这可以帮到你!如果你还有其他问题,请随时提问。
阅读全文