1. 程式人生 > >1005 德才論 (C++)

1005 德才論 (C++)

題目

題目描述
宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。”

現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。

輸入描述:
輸入第1行給出3個正整數,分別為:N(<=105),即考生總數;L(>=60),為錄取最低分數線,即德分和才分均不低於L的考生才有資格被考慮錄取;H(<100),為優先錄取線——德分和才分均不低於此線的被定義為“才德全盡”,此類考生按德才總分從高到低排序;才分不到但德分到線的一類考生屬於“德勝才”,也按總分排序,但排在第一類考生之後;德才分均低於H,但是德分不低於才分的考生屬於“才德兼亡”但尚有“德勝才”者,按總分排序,但排在第二類考生之後;其他達到最低線L的考生也按總分排序,但排在第三類考生之後。

隨後N行,每行給出一位考生的資訊,包括:准考證號、德分、才分,其中准考證號為8位整數,德才分為區間[0, 100]內的整數。數字間以空格分隔。

輸出描述:
輸出第1行首先給出達到最低分數線的考生人數M,隨後M行,每行按照輸入格式輸出一位考生的資訊,考生按輸入中說明的規則從高到低排序。當某類考生中有多人

總分相同時,按其德分降序排列;若德分也並列,則按准考證號的升序輸出。

輸入例子:
14 60 80

10000001 64 90

10000002 90 60

10000011 85 80

10000003 85 80

10000004 80 85

10000005 82 77

10000006 83 76

10000007 90 78

10000008 75 79

10000009 59 90

10000010 88 45

10000012 80 100

10000013 90 99

10000014 66 60

輸出例子:
12

10000013 90 99

10000012 80 100

10000003 85 80

10000011 85 80

10000004 80 85

10000007 90 78

10000006 83 76

10000005 82 77

10000002 90 60

10000014 66 60

10000008 75 79

10000001 64 90

解題思路

  1. 對於資料輸入時,滿足條件,即德才分都不低於錄取最低分數,則存入陣列中
  2. 對於資料分類和排序,在結構體內多加個變數flg用於區分類別(flg值越大,排名越靠後),然後在進行排序。排序思路是,先比較類別,類別小則靠前,如果兩個類別相同,則比較總分,按從高到低,如果總分相同,則比較德分,按從高到低,如果德分也相同,則按學號,從小到大
  3. 此題中用vector,用於存放學生資料,呼叫algorithm中的函式sort()對資料進行排序
//虛擬碼
//zhicheng
 struct Stu{int flg,num,de,cai};
 vector<Stu> mm;//存放學生資料
bool comp(Stu a,Stu b)
{
    如果類別不同,返回 按從小到大
    如果總分不同,返回 按從高到低
    如果得分不同,返回 按從高到低
    返回 學號從小到大
}
int main()
{
    輸入 n,l,h;
    while(cin>>n>>l>>h)
    {
        for(i->n)
        {
            讓一個臨時變數存放並輸入學號 德分 才分
            if(德分和才分 < l) continue;
            if(德分和才分 >= h) flg=1;
            else if(德分 >=h && 才分 <h) flg=2;
            else if(德分 <h && 德分>才分) flg=3;
            else flg=4;
            mm.push_back(資料)
        }
        sort()排序
        輸出總共滿足條件mm.size();
        輸出已排好的各組資料;
        mm.clear();
    }
}

日常更新,如有錯誤請指正
傳送門:程式碼地址

相關推薦

PAT乙級——1005 德才 (C/C++)

題目描述 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之 小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。 輸入描述: 輸入第1行給出3個正整數,

1005 德才 (C++)

題目 題目描述 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,請根據司馬光

1015 德才 ——C/C++實現

題目 1015 德才論 (25 point(s)) 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,

PAT Basic 1015. 德才 (25)(C語言實現)

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人

PAT (Basic Level) Practice (中文) 1015 德才 (25 分) (C++)(快速排序思想)

1015 德才論 (25 分) 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,請根據司馬光的理論給出錄取排

PAT乙級1015. 德才C語言)

/* * 先分類:1.德才全盡;2.德勝才;3.才德兼亡尚有德勝才;4.剩餘及格的考生 * 後排序:總分降序;德分降序;准考證號升序 */ #include <stdio.h> #include <stdlib.h&

C++ 1015德才(25 分)

#include<vector> //vector #include<algorithm> //sort #include<iostream> //bool cin cout size() using namespace

PAT-乙級 1015 德才C語言)

    本題其實並不難,過線考生分為4類,在每一類下的考生排序要求都是相同的。所以我們可以直接將不同類別過線考生存在不同陣列中分別進行排序,此處不建議存在同一陣列中進行排序。    使用了qsort函式,根據排序要求編寫cmp函式#include<stdio.h>

1015 德才C語言版 + 註釋 + qsort)

宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。 輸入格式: 輸入

德才

分隔 r+ 其中 臨時 urn 學生 scanf std ace 宋代史學家司馬光在《資治通鑒》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,茍不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生

PAT——1015. 德才

con pat 輸出 理論 優先 turn 升序 裝載 add 宋代史學家司馬光在《資治通鑒》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,茍不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的

學藝不精而慚愧--C++模板類的使用

今天 lease stat entire 網上 永遠 hat efi 這樣的 自己斷斷續續地使用C++也有一段時間了。有些時候產生了自滿的情緒。覺得自己對C++的語言

1015. 德才

++ div string 記錄 格式 sum mic idt clas 題目截圖: 思路:   可以設置 type 變量,先按 type 排序。然後就是按要求自定義 cmp 函數即可。 代碼: 1 /* 2 1015. 德才論 3 */ 4

1015. 德才 (25)

考證 nbsp pri clu qsort style 著名 log scan 宋代史學家司馬光在《資治通鑒》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,茍不得聖人,君子而與之,與其得小人,不若得愚人。”

[PAT乙級]德才 (25)

希望 tor sin 根據 include 排序。 ani mes style 題目描述 宋代史學家司馬光在《資治通鑒》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,茍不得聖人,君子而與之,與其得小人,不

我的女朋友漏電了–C++中的失敗(failure),缺陷(bug)和異常(exception)

c++先做個廣告置入,如果喜歡這篇文章,你可以到 zhaoyan.website/blog 去查看於此類似的C/C++文章。我承認有點標題黨了,不過這真的是一篇寫軟件的文章,所以如果你已經抽出了一張面巾紙,那麽趁早再把它完美的放回去。這篇軟件文章很軟,源代碼不多,而且大部分都是偽代碼。所以很適合所有人看。我特

PAT 1015.德才

lan pin pre lse gif col 德才論 spa href 題目:https://pintia.cn/problem-sets/994805260223102976/problems/994805307551629312 思路借鑒:《算法筆記 上級訓練實戰指南

【PAT】1015 德才 (25)(25 分)

clu 包括 準考證 printf 理論 代碼 print spa fin  1015 德才論 (25)(25 分) 宋代史學家司馬光在《資治通鑒》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,茍不得聖人,君

【PAT】B1015 德才

ont string 簡單 tor 優先 定義 錄取 can clu 這道題算是挺簡單,我在群裏看到的別人琢磨好久過不去,大多是因為沒有考慮好四種等級的判斷條件 一定要保證四種判斷條件正確。 下面這是我的代碼,比較笨。後邊有別人那學來的聰明些的方法 #include<

PAT乙級1015德才

PAT乙級1015德才論 輸入格式: 輸入第一行給出 3 個正整數,分別為:N(≤10 ​5 ​​ ),即考生總數;L(≥60),為錄取最低分數線,即德分和才分均不低於 L 的考生才有資格被考慮錄取;H(<100),為優先錄取線——德分和才分均不低於此線的被定義為