PTA 1015 德才论(C语言实现)
生活随笔
收集整理的這篇文章主要介紹了
PTA 1015 德才论(C语言实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Explanation
此題關鍵在于qsort()函數的應用.
可供參考(qsort函數分析):
https://blog.csdn.net/yzl_rex/article/details/7874513
https://blog.csdn.net/qq_38851937/article/details/89260263
Code
#include <stdio.h> #include <stdlib.h> //使用qsort()需要引入的STL(Standard Template Library)頭文件 #define Max 100000typedef struct grade{int num;int de;int cai; }stu;int cmp(const void *a, const void *b); void printType(stu s[], int j);int main(int argc, char *argv[]) {int N,L,H;int i,i1,i2,i3,i4;i1=i2=i3=i4=0;stu s, type01[Max], type02[Max], type03[Max], type04[Max]; scanf("%d %d %d", &N,&L,&H);for(i=0; i<N; i++){scanf("%d %d %d", &s.num, &s.de, &s.cai);if(s.de>=L && s.cai>=L){if(s.de>=H && s.cai>=H)//才德全盡type01[i1++]=s; else if(s.de>=H)//德勝才type02[i2++]=s;else if(s.de>=s.cai) // 尚有“德勝才”type03[i3++]=s;else//其他 type04[i4++]=s; } }qsort(type01,i1,sizeof(stu),cmp); qsort(type02,i2,sizeof(stu),cmp);qsort(type03,i3,sizeof(stu),cmp);qsort(type04,i4,sizeof(stu),cmp);printf("%d\n", i1+i2+i3+i4);printType(type01, i1);printType(type02, i2);printType(type03, i3);printType(type04, i4);return 0; }int cmp(const void *a, const void *b) {stu *s1, *s2;int sum1, sum2;s1 = (stu *)a;s2 = (stu *)b;sum1 = s1->de + s1->cai;sum2 = s2->de + s2->cai;//考生按輸入中說明的規則從高到低排序。//當某類考生中有多人總分相同時,按其德分降序排列;若德分也并列,則按準考證號的升序輸出。if(sum1 != sum2) return sum2-sum1;else if(s1->de != s2->de) return s2->de-s1->de;else return s1->num-s2->num; }void printType(stu s[], int j) {int i;for(i=0; i<j; i++)printf("%d %d %d\n", s[i].num, s[i].de, s[i].cai); }總結
以上是生活随笔為你收集整理的PTA 1015 德才论(C语言实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集成显卡常见故障大全
- 下一篇: 【致敬嵌入式攻城狮第2期活动预热征文】蜂