pat 乙 1015. 德才论
来源:互联网 发布:天地伟业监控软件 编辑:程序博客网 时间:2024/05/02 02:10
#include<iostream>#include<algorithm>#include<vector>#include<cstring>using namespace std;struct Student{ char id[10]; int moral; int talent;};bool Cmp(Student a,Student b){ if((a.moral+a.talent)!=(b.moral+b.talent)) //首先比较总分 return a.moral+a.talent>b.moral+b.talent; else //总分相同比较德分 { if(a.moral!=b.moral) { return a.moral>b.moral; } else { /*strcmp是比较两个字符串的大小,两个字符串相同时返回0, 第一个字符串大于第二个字符串时返回一个正值,否则返回负值. 比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定, 从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系, 如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。*/ return strcmp(a.id,b.id)<0; //德分相同比较id } } }int main(){ int count=0; vector<Student>v1,v2,v3,v4; Student students; int N,L,H; scanf("%d%d%d",&N,&L,&H); for(int i=0;i<N;i++) { //输入数据的时候顺便分类 scanf("%s%d%d",students.id,&students.moral,&students.talent); if(students.moral>=L&&students.talent>=L) { count++; //第一类考生 if(students.moral>=H&&students.talent>=H) v1.push_back(students); //第二类 else if(students.moral>=H&&students.talent<H) v2.push_back(students); //第三类 else if(students.moral<H&&students.talent<H&&students.moral>=students.talent) v3.push_back(students); //余下为第四类 else v4.push_back(students); } } sort(v1.begin(),v1.end(),Cmp);//Cmp为自定义的比较函数 sort(v2.begin(),v2.end(),Cmp); sort(v3.begin(),v3.end(),Cmp); sort(v4.begin(),v4.end(),Cmp); printf("%d\n",count); vector<Student>::iterator iter;//迭代器遍历vector for(iter=v1.begin();iter!=v1.end();iter++) printf("%s %d %d\n",iter->id,iter->moral,iter->talent); for(iter=v2.begin();iter!=v2.end();iter++) printf("%s %d %d\n",iter->id,iter->moral,iter->talent); for(iter=v3.begin();iter!=v3.end();iter++) printf("%s %d %d\n",iter->id,iter->moral,iter->talent); for(iter=v4.begin();iter!=v4.end();iter++) printf("%s %d %d\n",iter->id,iter->moral,iter->talent); return 0; }
0 0
- pat 乙 1015. 德才论
- PAT 1015. 德才论
- PAT 1015. 德才论
- PAT 1015. 德才论
- PAT(乙) 1015. 德才论 (25)
- PAT 1015. 德才论 (25)
- PAT 1015. 德才论 (25)
- PAT乙级 1015. 德才论
- PAT-1015. 德才论 (25)
- PAT 乙级 1015.德才论
- PAT-1015. 德才论 (25)
- PAT-B 1015. 德才论
- PAT-B 1015. 德才论
- PAT 1015. 德才论 (25)
- 1015. 德才论 (25) PAT
- [PAT-乙级]1015.德才论
- [PAT] 1015. 德才论 (25)
- PAT --- 1015. 德才论 (25)
- HBase调优
- 建议151:使用事件访问器替换公开的事件成员变量
- c++11中enum class的用法详解
- 子网掩码和prefixlength
- PullScrollView详解(一)——自定义控件属性
- pat 乙 1015. 德才论
- 建议152:最少,甚至是不要注释
- 怎样在mysql中设计好友关系库表
- Linux C++ 使用condition实现阻塞队列
- 报表打印及导出的代码
- Java线程总结(二):线程的同步方式synchronized
- PullScrollView详解(二)——Animation、Layout与下拉回弹
- HTML iframe 实现功能页面动态切换
- 建议153:若抛出异常,则必须要注释