1004 成績排名 20

2021-07-05 09:48:11 字數 1518 閱讀 9776

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

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

第1行:正整數n

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

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

... ... ...

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

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

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

輸入樣例:

3

joe math990112 89

mike cs991301 100

mary ee990830 95

輸出樣例:
mike cs991301

joe math990112

#include "iostream"

using namespace std;

typedef struct student //定義乙個包好學生姓名,學號,分數的結構體

student;

int main()

if (n == 1)

else }

cout << stu[first].name << " " << stu[first].num << endl;

cout << stu[last].name << " " << stu[last].num<< endl;

} return 0;

}

adeng :題目中有明確要求要保證輸入的學生成績中不能出現相同的,所以我一開始的思路是將學生的成績錄入乙個陣列並判斷是否有重複,然後再進行排序,輸出最低最高分所對應的學號與姓名嗎,然除錯了很久沒有成功。最後採用上面的方法判定最低最高分,雖然相對來說簡單了不少,但是它並滅有檢查成績重複的功能,好在平台上能執行過去。

#include#includestruct student  

;

int main()

; first =(struct student);

last = (struct student);

scanf("%d",&n);

for(i=0;i=first.score)

if(input.score<=last.score)

} printf ("%s %s\n",first.name,first.number);

printf ("%s %s\n",last.name,last.number);

return 0;

}

adng:上面的設計思路更直接,只需要定義三個結構體,乙個用來接收新的輸入,乙個儲存目前最高分另乙個儲存最低分的資訊。

1004 成績排名 20

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

1004 成績排名 20

第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超過10個字元的字串,成績為0到100之間的乙個整數,這裡保證在一組測試用例中沒有兩個學生的成績是相同的。輸出格式 對每個測試用例輸出2行,第1行...

1004 成績排名 20

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