PAT 乙級 1004(成績排名)

2021-10-04 23:53:50 字數 1572 閱讀 9909

讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。

輸入格式:

每個測試輸入包含 1 個測試用例,格式為

第 1 行:正整數 n

第 2 行:第 1 個學生的姓名 學號 成績

第 3 行:第 2 個學生的姓名 學號 成績

… … …

第 n+1 行:第 n 個學生的姓名 學號 成績

其中姓名和學號均為不超過 10 個字元的字串,成績為 0 到 100 之間的乙個整數,這裡保證在一組測試用例中沒有兩個學生的成績是相同的。

輸出格式:

對每個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字串間有 1 空格。

輸入樣例:

3joe math990112 89

mike cs991301 100

mary ee990830 95

輸出樣例:

mike cs991301

joe math990112

#include

#include

using

namespace std;

intmain()

if(grade > max_grade)

//如果輸入的成績大於最大成績,則將當前成績作為最大成績

} cout << max_name <<

' '<< max_id << endl;

cout << min_name <<

' '<< min_id << endl;

}

題目開始本來是想將每一行作為乙個字串,利用空格進行分割分到相應的陣列,無奈網上查到的分割寫法過於麻煩,還要用到vector,想想還是算了,於是便將輸入分開,不過需要進行多次賦值而已,總比前面的方法簡單吧!

好了,這就動手,首先需要定義六個界限,max_grade,min_grade,max_name,min_name,max_id,min_id,每一次輸入對他們重新比較和賦值。

其中需要注意的是min_grade=101,max_grade=-1,當輸入的成績比min_grade還要小的時候,便把輸入的成績作為最小成績,同理輸入的成績比max_grade要大的時候,便把輸入的成績作為最大成績,再對相應的學號id和姓名name重新賦值。具體如下:

if

(grade < min_grade)

//如果輸入的成績小於最小成績,則將當前成績作為最小成績

if(grade > max_grade)

//如果輸入的成績大於最大成績,則將當前成績作為最大成績

最後,按照輸出格式進行輸出:

cout << max_name <<

' '<< max_id << endl;

cout << min_name <<

' '<< min_id << endl;

PAT(乙級) 1004 成績排名

題目 讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超過10個字元的...

PAT乙級1004 成績排名

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學...

PAT乙級 1004 成績排名

1004.成績排名 讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超...