題目描述
讀入n名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入描述:
每個測試輸入包含1個測試用例,格式為輸出描述:第1行:正整數n
第2行:第1個學生的姓名 學號 成績
第3行:第2個學生的姓名 學號 成績
第n+1行:第n個學生的姓名 學號 成績
其中姓名和學號均為不超過10個字元的字串,成績為0到100之間的乙個整數,這裡保證在一組測試用例中沒有兩個學生的成績是相同的。
對每個測試用例輸出2行,第1行是成績最高學生的姓名和學號,第2行是成績最低學生的姓名和學號,字串間有1空格。輸入例子:
joe math990112 89輸出例子:mike cs991301 100
mary ee990830 95
mike cs991301(題目來自牛客網pat乙級練習題1036,由joe math990112
小小
上傳)
我的想法:
題目要求儲存兩組資料,乙個是最大的,乙個是最小的。我們還需要另乙個來儲存當前的輸入。所以我們一共需要三組資料空間,每組資料都是三個元素「名字,學號,成績」,我們可以用結構體來做,這裡比較簡單,我就直接用了9個變數。第一次輸入的值我們把它即當成最大,也當成最小(因為只有乙個啊),之後的輸入,再大的覆蓋大的,小的覆蓋小的。就有了下面:
#include
#include
using
namespace
std;
int main()else
if(score_tcout
<' '
<' '
0;}
上面程式8552kb記憶體,牛客網c語言最優解是8452kb。還真是湊巧,和我整整差了100kb,看起來我的路途還很遙遠啊。下面貼乙個8452kb的**,來自 「uncle_sugar」# include
# include
using
namespace
std;
struct stu
void print()
};int main()
else
if (temp.grade>max.grade)
max = temp;
else
if (temp.grade**不同,但原理差不多的,我更想弄明白,為什麼他的記憶體占用會少這麼多,望高人賜教。
PAT乙級 成績排名
讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號 成績其中姓名和...
PAT考試乙級1004之成績排名
題目 讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號...
PAT乙級考試記錄之成績排名
讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號 成績...