Problem C: 身高问题 Time Limit: 1 Sec Memory Limit: 128 MB Description 输入n个学生的信息,每个学生信息包括姓名、身高、学号。编程输出身高最高的学生的信息。 Input 第1行一个正整数n,表示学生个数,n<=100。 以下n行,每一行依次输入学生的姓名、身高、学号。 Output 输出身高最高的学生信息,如果存在身高一样的,请输出学号小的那个同学。 Sample Input 5 John 172 20160302 David 173 20160306 Jason 168 20160309 Jack 152 20160311 Kitty 147 20160319 Sample Output David 173 20160306 C++回答
时间: 2024-04-15 16:29:42 浏览: 200
RBTree,c语言学生信息管理系统免费源码,c语言程序
为了解决这个问题,您可以按照以下步骤进行操作:
1. 读取输入的正整数n,表示学生个数。
2. 使用一个循环,读取每个学生的姓名、身高和学号,并保存身高最高的学生信息。
3. 在循环中,比较当前学生的身高与当前保存的最高身高,如果当前学生身高更高,则更新保存的最高身高和学生信息。
4. 循环结束后,输出保存的最高身高的学生信息。
以下是一个示例的C++代码实现:
```cpp
#include <iostream>
#include <string>
struct Student {
std::string name;
int height;
int studentID;
};
int main() {
int n;
std::cin >> n; // 读取学生个数
Student tallestStudent;
int maxHeight = 0;
for (int i = 0; i < n; i++) {
Student student;
std::cin >> student.name >> student.height >> student.studentID; // 读取学生信息
// 如果当前学生身高更高,则更新保存的最高身高和学生信息
if (student.height > maxHeight) {
maxHeight = student.height;
tallestStudent = student;
}
// 如果当前学生身高与最高身高相同,则比较学号,选择学号小的那个学生
else if (student.height == maxHeight && student.studentID < tallestStudent.studentID) {
tallestStudent = student;
}
}
// 输出身高最高的学生信息
std::cout << tallestStudent.name << " " << tallestStudent.height << " " << tallestStudent.studentID << std::endl;
return 0;
}
```
对于给定的样例输入,输出结果为`David 173 20160306`。
希望这个代码可以帮助到您!如果还有其他问题,请随时提问。
阅读全文