1015 德才论
来源:互联网 发布:美国情景喜剧排行知乎 编辑:程序博客网 时间:2024/06/08 18:32
#include <stdio.h>#include <malloc.h>typedef struct{ int sno; int moral; int talent; int sumscore;}STUDENT;char Category(const STUDENT * stu, int pass, int good); void PrintStu(const STUDENT stu[], int num); void QuickSortStu(STUDENT stu[], int low, int high); int main(void){ int num, pass, good; scanf("%d %d %d", &num, &pass, &good); getchar(); int A = 0; int B = 0; int C = 0; int D = 0; STUDENT * stuA = (STUDENT *)malloc((num + 1) * sizeof(STUDENT)); STUDENT * stuB = (STUDENT *)malloc((num + 1) * sizeof(STUDENT)); STUDENT * stuC = (STUDENT *)malloc((num + 1) * sizeof(STUDENT)); STUDENT * stuD = (STUDENT *)malloc((num + 1) * sizeof(STUDENT)); STUDENT temp; for (int i = 0; i < num; i++) { scanf("%d %d %d", &temp.sno, &temp.moral, &temp.talent); temp.sumscore = temp.moral + temp.talent; switch (Category(&temp, pass, good)) { case 'A': stuA[++A] = temp; break; case 'B': stuB[++B] = temp; break; case 'C': stuC[++C] = temp; break; case 'D': stuD[++D] = temp; break; default: break; } } QuickSortStu(stuA, 1, A); QuickSortStu(stuB, 1, B); QuickSortStu(stuC, 1, C); QuickSortStu(stuD, 1, D); printf("%d\n", A + B + C + D); PrintStu(stuA, A); PrintStu(stuB, B); PrintStu(stuC, C); PrintStu(stuD, D); free(stuA); free(stuB); free(stuC); free(stuD); return 0;}char Category(const STUDENT * stu, int pass, int good){ if ((*stu).moral >= good && (*stu).talent >= good) return 'A'; else if ((*stu).moral >= good && (*stu).talent >= pass) return 'B'; else if ((*stu).moral >= pass && (*stu).talent >= pass && (*stu).moral >= (*stu).talent) return 'C'; else if ((*stu).moral < pass || (*stu).talent < pass) return 'Z'; else return 'D';}void PrintStu(const STUDENT stu[], int num){ for (int i = 1; i <= num; i++) printf("%d %d %d\n", stu[i].sno, stu[i].moral, stu[i].talent);}void QuickSortStu(STUDENT stu[], int low, int high){ if (low >= high) return; int first = low; int last = high; stu[0] = stu[first]; while (first < last) { while (first < last && !( (stu[last].sumscore > stu[0].sumscore) || (stu[last].sumscore == stu[0].sumscore && stu[last].moral > stu[0].moral) || (stu[last].sumscore == stu[0].sumscore && stu[last].moral == stu[0].moral && stu[last].sno < stu[0].sno) ) ) last--; stu[first] = stu[last]; while (first < last && !( (stu[first].sumscore < stu[0].sumscore) || (stu[first].sumscore == stu[0].sumscore && stu[first].moral < stu[0].moral) || (stu[first].sumscore == stu[0].sumscore && stu[first].moral == stu[0].moral && stu[first].sno > stu[0].sno) ) ) first++; stu[last] = stu[first]; } stu[first] = stu[0]; QuickSortStu(stu, low, first - 1); QuickSortStu(stu, first + 1, high);}
0 0
- 1015 德才论
- 1015德才论
- PAT 1015德才论
- PAT 1015 德才论
- PAT-1015 德才论
- 1015 德才论
- PAT 1015 德才论
- 1015论德才
- PAT 1015德才论
- PAT 1015 德才论
- ZJU PAT 1015 德才论
- PAT basic 1015 : 德才论
- 1015_德才论 (25)
- PAT_乙级 1015 德才论
- PAT BASIC 1015 德才论
- PAT 乙级 1015 德才论
- 德才论(PAT-1015)
- 1015德才论(排序)
- B/S与C/S概念
- 菜单点击弹出动画 ViewpropertyAnimator
- C#高级编程-事务和网络
- Android屏幕适配 超级解决方案percent-support-lib
- ELK日志管理系统的搭建
- 1015 德才论
- OC-初始化、实例方法、类方法、工厂方法
- bzoj 3337: ORZJRY I (块状链表)
- faster rcnn RPN之anchor(generate_anchors)源码解析
- POJ 3159 Candies(差分规划+SPFA)
- TCP slow start (TCP慢启动)
- Android图片加载库Glide
- sizeof 可变参数的模版特化 C++ templa
- 1016 部分a+b