PTA 1015 德才論 (題解 知識點)c

2021-10-02 06:59:31 字數 1284 閱讀 3794

先把**直接給出來,再聽我慢慢講解。

#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 選擇器有很多,不同的選擇器的權重和優先順序不一樣,對於乙個元素,如果存在多...