1004?成績排名?(20 分)
讀入?n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。
輸入格式:
每個測試輸入包含 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
----------------------------------------------------------------------------------------------
?
測試點 | 結果 | 耗時 | 內存 |
---|---|---|---|
0 | 答案正確 | 6?ms | 424KB |
1 | 答案正確 | 3?ms | 376KB |
2 | 答案正確 | 3?ms | 384KB |
#include<iostream>
#include<cstring>
using namespace std;
int main(){
?? ?int i;
?? ?int n;
?? ?int score;
?? ?int max=0,min=100;
?? ?cin>>n;
? ? char a[11],b[11]; ? ? ?//a、b字符串數組用來存放輸入的名字、學號
? ? char aa[11],bb[11]; ? ?//aa、bb用來存放成績最高的人的名字、學號
? ? char cc[11],dd[11]; ? ?//cc、dd用來存放成績最低的人的名字、學號
? ? for(i=0;i<n;i++){
? ? ?? ?cin>>a;
? ? ?? ?cin>>b;
? ? ?? ?cin>>score;
? ? ?? ?if(score>max){
? ? ?? ??? ? max=score;
? ? ?? ??? ? memcpy(aa, a, sizeof(a));
? ? ?? ??? ? memcpy(bb, b, sizeof(b));
?? ??? ?} ? ??? ?
? ? ?? ?if(score<min){
? ? ?? ??? ? min=score;
? ? ?? ??? ? memcpy(cc, a, sizeof(a));
? ? ?? ??? ? memcpy(dd, b, sizeof(b));
?? ??? ?}
?? ?}
?? ?cout<<aa<<" "<<bb<<endl;
?? ?cout<<cc<<" "<<dd;
? ??
}