題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805321640296448ios
讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。c++
每一個測試輸入包含 1 個測試用例,格式爲測試
第 1 行:正整數 n 第 2 行:第 1 個學生的姓名 學號 成績 第 3 行:第 2 個學生的姓名 學號 成績 ... ... ... 第 n+1 行:第 n 個學生的姓名 學號 成績
其中姓名
和學號
均爲不超過 10 個字符的字符串,成績爲 0 到 100 之間的一個整數,這裏保證在一組測試用例中沒有兩個學生的成績是相同的。spa
對每一個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字符串間有 1 空格。code
3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95
Mike CS991301 Joe Math990112
思路簡單,構建學生結構體,循環輸入記錄數據,遍歷找到成績最低和最高的學生記錄。ci
#include<iostream> using namespace std; struct Student{ string name; string studentId; short score; }; int main() { int studentNumber = 0; cin >> studentNumber; Student students[studentNumber]; for (int i = 0; i < studentNumber; i++) { students[i] = Student(); cin >> students[i].name >> students[i].studentId >> students[i].score; } int minScore = 101; int maxScore = -1; int minStudentIndex = -1; int maxStudentIndex = -1; for (int i = 0; i < studentNumber; i++) { if (students[i].score > maxScore) { maxScore = students[i].score; maxStudentIndex = i; } if (students[i].score < minScore) { minScore = students[i].score; minStudentIndex = i; } } cout << students[maxStudentIndex].name << ' ' << students[maxStudentIndex].studentId << endl; cout << students[minStudentIndex].name << ' ' << students[minStudentIndex].studentId << endl; return 0; }