第一行給出三個整數n, l, h
表示 學生人數,最低錄取分數線 和 優先錄取線(其實就是優秀和良好的分界線啦)。
然後給出一大堆學生的 學號和其各自的 德才分。讓你按司馬光的理論給出錄取排名。
總結一下排名次的要求如下:
德才分只要有乙個沒及格(即沒達到最低錄取分數線l
)直接剔除,不放入排名。
排名先分類,後在各類別中按德才總分排序。
分類分四類:
第一類:「才德全盡」— 德,才兩項分數均大於等於優先錄取線h
。
第二類:「德勝才」— 德分大於等於優先錄取分數線h
,但才分沒達到。
第三類:「才德兼亡」但尚有「德勝才」— 德才分均未達到優先錄取線h
,但德分不低於才分。
第四類:「才勝德」— 除上述三類之外的其他未不及格考生。
如果德才總分相同,則德分高排前;若仍相同,則按准考證號公升序排列。
最後輸出錄取人數和排好名次的學生資訊即可。
既然排名次的要求寫得這麼明確,那我們就直接寫乙個cmp
,然後讓sort()
直接幫我們排好序就好了。
注意好排序的要求,應該不會出錯。
#include
#include
using namespace std;
#define stumax 100005
struct stu;
stu s[stumax];
int n, l, h;
int level( stu a )
else
if( a.d >= a.c ) return
3; return4;}
bool judge( stu a, stu b )
bool cmp( stu a, stu b )
int main()
}sort( s, s + n, cmp );
printf( "%d\n", n );
for( int i = 0; i < n; i++ )
}return
0;}
一看我這麼帥就是德才兼備,德才全盡啊!
請錄取我!
PAT B 1015德才論 25分
1015 德才論 25 分 宋代史學家司馬光在 資治通鑑 中有一段著名的 德才論 是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。輸入格式 輸入第一行給出 3...
PAT B 1015 德才論 (25 分)
宋代史學家司馬光在 資治通鑑 中有一段著名的 德才論 是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。輸入格式 輸入第一行給出 3 個正整數,分別為 n 10...
PAT B 1015 德才論(C語言)
宋代史學家司馬光在 資治通鑑 中有一段著名的 德才論 是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。輸入格式 輸入第一行給出 3 個正整數,分別為 n 10...