1004の順位表(20点)
読み込み N-(>)学生の名前、学校、成果、出力最高のスコアを、最低は学生の名前と学生番号を獲得。
入力フォーマット:
各テストは、テスト入力形式を含みます
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
... ... ...
第 n+1 行:第 n 个学生的姓名 学号 成绩
前記姓名
と学号
ない文字列内の10以上の文字で、結果は、テストケースのセットが2つが同じ生徒の成績ではないことを確実に0と100の間の整数です。
出力フォーマット:
各テストケース出力2の場合、1行目は、最高の学生の名前と学生番号をスコアで、二行目は、学生の名前と学生番号を最低得点され、文字列の間にスペースがあります。
サンプル入力:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
出力例:
Mike CS991301 Joe Math990112
分析:
学生生徒の名前を保存するために定義された構造、学生番号、スコアは、ラインの最小値と最大値を見つけるために、スコアを比較します
1つの#include <iostreamの> 2 使用して 名前空間STDを、 3 4のtypedef 構造体学生 5 { 6 列名; 7 弦番号。 8 符号なし整数スコア。 9 }学生。 10 11 のint main()の 12 { 13 INT N。 14 CIN >> N。 15 学生* STU = 新しい生徒[N]。 16 学生MAX、MIN。 17 18 のために(int型 i = 0 ; iがN <; ++ I) 19 { 20 CIN >> STU [I] .nameの>> STU [I] .NUMBER >> STU [I] .score。 21 } 22 、最大= STU [ 0 ]。 23 分= STU [ 0 ]。 24 のために(int型 i = 1 ; iが<N; ++ i)が 25 { 26の 場合(STU [I] .score> max.score) 27 { 28 、最大= STU [I]。 29 続け; 30 } 31 であれば(STU [I] .score < min.score) 32 { 33 分= STU [I]。 34 } 35 36 } 37 COUT << max.name << " " << max.number << ENDL。 38 coutの<< min.name << " " << min.number。 39 削除[] STUします。 40 リターン 0 ; 41 }