pat 1062(patriot)

网友投稿 225 2022-09-21


pat 1062(patriot)

1.源代码如下 #include #include #define maxn 100010 using namespace std; struct Student{ int id; int cai,de, sum; }tempStu[maxn]; Student sage[maxn], nobl[maxn], fool[maxn],smal[maxn];//圣人 君子 愚民 小人 bool cmp(Student s1,Student s2){ if(s1.sum == s2.sum){ if(s1.de == s2.de) return s1.id < s2.id;//小的在前 else return s1.de > s2.de; } else return s1.sum > s2.sum;//大的在前 } //输出函数 void outPut(int n,Student stu[]){ int i; for (i = 0;i< n;i++){ printf("%d %d %d\n",stu[i].id,stu[i].de,stu[i].cai); } } int main(){ int n,l,h; int count = 0; int sageCo = 0,noblCo= 0,foolCo = 0,smalCo= 0; scanf("%d %d %d",&n,&l,&h); for(int i = 0;i < n;i++){ scanf("%d %d %d",&tempStu[i].id,&tempStu[i].de,&tempStu[i].cai); tempStu[i].sum = tempStu[i].de + tempStu[i].cai; if(tempStu[i].cai < l || tempStu[i].de < l) count++;//计数 不及格者 else if(tempStu[i].cai >= h && tempStu[i].de >= h){ sage[sageCo].sum = tempStu[i].sum; sage[sageCo++] = tempStu[i];//结构体赋值 } else if(tempStu[i].cai < h && tempStu[i].de >= h){ nobl[noblCo].sum = tempStu[i].sum; nobl[noblCo++] = tempStu[i];//结构体赋值 } else if(tempStu[i].cai <= tempStu[i].de && tempStu[i].de < h ){ fool[foolCo].sum = tempStu[i].sum; fool[foolCo++] = tempStu[i];//结构体赋值 } else { smal[smalCo].sum = tempStu[i].sum; smal[smalCo++] = tempStu[i]; } } sort(sage,sage+sageCo,cmp); sort(nobl,nobl+noblCo,cmp); sort(fool,fool+foolCo,cmp); sort(smal,smal+smalCo,cmp); printf("%d\n",n-count); outPut(sageCo,sage); outPut(noblCo,nobl); outPut(foolCo,fool); outPut(smalCo,smal); return 0; } /** 14 60 80 10000001 64 90 10000002 90 60 10000011 85 80 10000003 85 80 10000004 80 85 10000005 82 77 10000006 83 76 10000007 90 78 10000008 75 79 10000009 59 90 10000010 88 45 10000012 80 100 10000013 90 99 10000014 66 60 */


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pat 1035(patients)
下一篇:pat 1067
相关文章

 发表评论

暂时没有评论,来抢沙发吧~