シェルの練習--PATタイトル:1004の順位!(失敗)

読み込み  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。評価は、最大値と最小値のスコアを取得するために、ソートによるバブルソート、バブルでなければなりません。それはまた、関連する概念の二次元アレイを検査することができます。
  2.問題の範囲、長さの長さを決定する必要性を
#/ binに/ bashの
ARR =( 'ジョーMath990112 89' 'マイクCS991301 100' 'メアリーEE990830 95')
compare_score(){ 
        [$ $ -LT-TEMP最大] IF;次いで、    
                最大= $の一時
        Fiの
        [$分-gt IF $のTEMP];次いで
                分= $ TEMPの
        Fiを
} 

maxは= 0#初期値に、ここで直接指定し、配列内から値を抽出することができる
分= 100 

でIは、 "$ {ARR [@]}" 
        ARR2であります=($ I)
        名= $ {ARR2 [0]} 
        NUM = $ {ARR2である[1]} 
        スコア= $ {ARR2である[2]} 
        TEMP = $スコア
        compare_scoreが
DONE 
"$ {ARR [@]}"でJため 
        STR1 = $(エコー$ J | grepのは、$ {最大} |。awkの「{$ 1枚の[プリント画像""$ 2} ')
        STR2 = $(エコー$ jの|はgrepの$ {分} | AWK '{$ 1"印刷「$ 2}')
        [ "$ str1は" -n]であれば
        、その後
                max_str = $ str1は
        [ "$ str2の" -n] elifの
        後、
                min_str = $ STR2の
        Fiあり
行って
エコー$ max_str 
エコー$ min_str

  明らかに、これはない以上、機能が実現されていないです。

おすすめ

転載: www.cnblogs.com/wyf-349/p/11237119.html