先把**直接給出來,再聽我慢慢講解。
#include
using
namespace std;
struct stu
;struct stu a[
100000];
bool
cmp(stu a,stu b)
intmain()
else a[i]
.lei=1;
//不及格者
}sort
(a,a+n,cmp)
;printf
("%d\n"
,sum)
;for
(i=0
;i++i)
return0;
}
這道題就是個排序問題,看的出來用結構體寫,但關鍵在於明白題上說的分類是什麼意思。所有學生可分為五類
才德全盡
德勝才
才德兼亡」但尚有「德勝才」者
過線生
不及格生
每一類具體的要求上面**有 注意題上說的是不低於所以是》=。
現在就是個排序問題,統計及格人數,最後輸出資訊。
之後就是三個點去解決這道題。
總所周知sort函式是十分好用的,當然也可以自己寫,但不一定有它快和好。
sort函式如何將結構體排序,這就需要我們自己定義排序規則
這也是這道題的主要考察的點。
bool
cmp(stu a,stu b)
//根據題意寫出規則 如第一條 先輸出第一類學生。 才德全盡的人
//最後一條,全部條件相同時,按字典排序輸出准考證號的公升序排列
之後在所有資訊輸入後,進行一次排序就好了。
sort
(a,a+n,cmp)
;
第一次寫的時候全部的輸入和輸出全部是 cin cout,但在執行測試點3 和 4時,我的**超時了。知道cin模擬scanf要耗時,就改了一下,這道題就過了。題上的 n 學生人數<= 105,如此多的資料,cin 和scanf的差別就能體現出來了。
cin雖然寫起來簡單,但是先把要輸出的東西存入緩衝區,再輸出,導致效率降低。
scanf是格式化輸入,printf是格式化輸出,格式化輸出效率比較高,但是寫**麻煩。
希望能對你有所幫助,
wish you all the best.
PTA 1015 德才論 25分
宋代史學家司馬光在 資治通鑑 中有一段著名的 德才論 是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。輸入第一行給出 3 個正整數,分別為 n 105 即考生...
(PTA)刪除字串中的子串(提供詳細知識點)
author mifkuf 微電子科學與工程 理科男 部分是老師提供的pta答案,其餘部分原創。輸入2個字串s1和s2,要求刪除字串s1 現的所有子串s2,即結果字串中不能包含s2。輸入在2行中分別給出不超過80個字元長度的 以回車結束的2個非空字串,對應s1和s2。在一行中輸出刪除字串s1 現的所...
一面 3 CSS HTML 知識點與高頻考題解析
css 和 html 是網頁開發中布局相關的組成部分,涉及的內容比較多和雜亂,本小節重點介紹下常考的知識點。浮動float 定位position flex布局 如何實現居中對齊?理解語義化 css3 動畫 重繪和回流 css 選擇器有很多,不同的選擇器的權重和優先順序不一樣,對於乙個元素,如果存在多...