成绩排名 c++
讀入 n(>0)名學(xué)生的姓名、學(xué)號(hào)、成績(jī),分別輸出成績(jī)最高和成績(jī)最低學(xué)生的姓名和學(xué)號(hào)。
輸入格式:
每個(gè)測(cè)試輸入包含 1 個(gè)測(cè)試用例,格式為
第 1 行:正整數(shù) n
第 2 行:第 1 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī)
第 3 行:第 2 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī)
? ... ... ...
第 n+1 行:第 n 個(gè)學(xué)生的姓名 學(xué)號(hào) 成績(jī)
其中姓名和學(xué)號(hào)均為不超過(guò) 10 個(gè)字符的字符串,成績(jī)?yōu)?0 到 100 之間的一個(gè)整數(shù),這里保證在一組測(cè)試用例中沒(méi)有兩個(gè)學(xué)生的成績(jī)是相同的。
輸出格式:
對(duì)每個(gè)測(cè)試用例輸出 2 行,第 1 行是成績(jī)最高學(xué)生的姓名和學(xué)號(hào),第 2 行是成績(jī)最低學(xué)生的姓名和學(xué)號(hào),字符串間有 1 空格。
輸入樣例:
3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95輸出樣例:
Mike CS991301
Joe Math990112
實(shí)現(xiàn):
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;//建立一個(gè)學(xué)生類 含有學(xué)生姓名 學(xué)生學(xué)號(hào) 學(xué)生成績(jī)
class Student
{
public:string s_name;string s_id;int s_goal;//構(gòu)造函數(shù) Student(string name, string id, int goal) :s_name(name), s_id(id), s_goal(goal) {};};//加入一個(gè)比較函數(shù)cop() 按引用的方式傳遞
bool cmp(Student& s1, Student& s2)
{return s1.s_goal > s2.s_goal;
}int main()
{int line;cin >> line;//應(yīng)用vector容器 存儲(chǔ)每一個(gè)學(xué)生數(shù)據(jù)vector<Student>stu;for (int i = 0; i < line; i++){string name;string id;int age;cin >> name >> id >> age;Student s(name, id, age);stu.push_back(s);//插入學(xué)生數(shù)據(jù)}//排序sort(stu.begin(), stu.end(), cmp);cout << stu[0].s_name << " " << stu[0].s_id << endl;cout << stu[line-1].s_name << " " << stu[line-1].s_id << endl;return 0;}
題目來(lái)源:PAT (Basic Level) Practice
總結(jié)
- 上一篇: 防止asp马后门
- 下一篇: 软件体系架构阅读笔记(十五)