1. 程式人生 > >PAT乙級1015. 德才論(C語言)

PAT乙級1015. 德才論(C語言)

AC

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

typedef struct{
    int num; //准考證號
    int de; //德分
    int cai; //才分 
} examinee;
int cmp(const void *a, const void *b) {
    examinee e1 = *(examinee *)a;
    examinee e2 = *(examinee *)b;
    if
((e1.de + e1.cai) != (e2.de + e2.cai)) {//總分降序 return (e2.de + e2.cai) > (e1.de + e1.cai); } else if ( e1.de != e2.de) { //德分降序 return e2.de > e1.de; } else { return e1.num > e2.num; //准考證號升序 } } int main() { int N, L, H; //考生總數、最低和最高分數線 scanf("%d %d %d"
, &N, &L, &H); int num, de, cai; //准考證號、德分、才分 int cnt[4] = {0}; //四類考生的數量 examinee order[4][N]; while (N-- > 0) { //讀入考生資訊 scanf("%d %d %d", &num, &de, &cai); if( de >= L && cai >= L) { //如果達到最低分數線 examinee e = {num, de, cai}; //建立考生
if (de >= H && cai >= H) { //德才全盡 order[0][cnt[0]++] = e; } else if (de >= H && cai < H) { //德勝才 order[1][cnt[1]++] = e; } else if (de < H && cai < H && de >= cai) {//才德兼亡尚有德勝才 order[2][cnt[2]++] = e; } else { order[3][cnt[3]++] = e; } } } printf("%d\n", cnt[0] + cnt[1] + cnt[2] + cnt[3]); for (int i = 0; i < 4; i++) { //遍歷四個分類,進行排序 qsort(order[i], cnt[i], sizeof(order[i][0]), cmp); for (int j = 0; j < cnt[i]; j ++) {//依次輸出 printf("%08d %d %d\n", order[i][j].num, order[i][j].de, order[i][j].cai); } } return 0; }

相關推薦

PAT乙級1015. 德才C語言

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

PAT-乙級 1015 德才C語言

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

PAT乙級 1015 德才 25 分

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

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

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

PAT乙級1054. 求平均值C語言

/* * 1. 合法的輸入最長為8(-1000.00); * 2. 嚴謹解法: * 2.1 scanf("%8s", str); 讀取 最多前8個字元 * 2.2 利用 ungetc(getchar(), stdi

PAT1015 德才 25 分

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

PAT乙級1065. 單身狗C語言

/* * 1. 單身狗的判斷: * 1.1 沒有物件; * 1.2 有物件,兩人中只有一人蔘加派對; * 2. 以ID為陣列下標記錄情感狀況; * 3. 有物件的人,參加派對的人做特殊標記; */ #include &l

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

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

PAT乙級1015德才

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

PAT-乙-1015 1015 德才 25 分

程式碼 #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std;

pat乙級1084 外觀數列c語言實現

#include<stdio.h>#include<string.h>#define MAXN 100005char s[MAXN],t[MAXN];char *ps,*pt;main(){    char now;//µ±Ç°¼ÆÊýint num,

pat 乙級1082 射擊比賽c語言實現

#include<stdio.h>#include<stdlib.h>typedef struct d{int id;int grade;}man;int cmp(const void*a,const void*b){man s1=*(man*)a;m

pat 乙級 1015. 德才(25)

注意 : 用cout cin 這道題容易超時  建議用scanf printf #include <iostream> #include <algorithm> #i

PAT乙級1015. 德才 (25)

題目連結  https://www.patest.cn/contests/pat-b-practise/1015 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君

C++ 1015德才25 分

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

PAT乙級 1015. 德才 (25)

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

PAT乙級 1015. 德才

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

PAT甲級題目記錄總結C++語言

1120 Friend Numbers 題目翻譯: 如果兩個整數各位數之和相等,那麼這兩個數稱為“friend numbers”,和稱為“friend ID”。例如,123和51就是“friend numbers”,因為1+2+3=5+1=6,6為“fri

1015 德才 25 分

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

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

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