NYOJ_60 谁获得了最高奖学金
2015-06-01 18:59
447 查看
题目地址
分析:
本题采用结构体的形式比较容易想到。上次使用结构体还是大一上考完C语言的时候,想想惭愧!平时编程还是太少!
心得:
做完不看推荐代码等于白做!判断输入是否为真 bool istrue= str ==“Y”;
姓名:直接用 string 定义,不需要用字符数组。
代码:
#include<iostream> #include<string.h> using namespace std; struct Student { char *name ; float finalExamScore ; float classJudgeScore ; char isClassLeader ; char isWestern ; int paperNum ; float bouns ; }; void countBonus(Student &p) //加引用 { if(p.finalExamScore >80 && p.paperNum >= 1) p.bouns+=8000; if(p.finalExamScore>85 && p.classJudgeScore >80) p.bouns+= 4000; if(p.finalExamScore >90 ) p.bouns += 2000; // if(strcmp("Y",p.isWestern)==0 && p.finalExamScore >85) p.bouns+=1000; // if(strcmp("Y",p.isClassLeader)==0 &&p.classJudgeScore >80) p.bouns+= 850; if('Y'==p.isWestern && p.finalExamScore >85) p.bouns+=1000; if('Y'==p.isClassLeader &&p.classJudgeScore >80) p.bouns+= 850; } void SelectSort(Student *p ,int n) { int i,j,min; Student temp; for(int i=0;i<n;i++) //n-1次 { min = i; for(j=i+1;j<n;j++) { if(p[min].bouns>= p[j].bouns) //稳定的 如果 a 先进 则 a靠后(大) min = j; } if(min != i) { temp = p[i]; p[i] = p[min]; p[min] = temp; } } } int main() { int n; cin>>n; while(n--) { int num; float bouns=0; cin>>num; Student stu[num]; //结构数组 for(int i=0;i<num;i++) { stu[i].name = new char[20]; // stu[i].isClassLeader = new char [3]; // stu[i].isWestern = new char [3]; cin>>stu[i].name>>stu[i].finalExamScore>>stu[i].classJudgeScore>>stu[i].isClassLeader>>stu[i].isWestern>>stu[i].paperNum; stu[i].bouns = 0; countBonus(stu[i]); } SelectSort(stu,num); //从小到大排序 for(int i=0;i<num;i++) { bouns += stu[i].bouns; } cout<<stu[num-1].name<<" "<<endl; cout<<stu[num-1].bouns<<" "<<endl; cout<<bouns<<endl; } return 0; }
官方优秀代码:
相关文章推荐
- ORACLE 11g R2数据库安装硬件环境要求
- 四则运算安卓版ver.mk2
- Hibernate 重要几个注解
- Android桌面悬浮窗小火箭效果实现
- Android中Parcelable接口用法
- viewpager禁止滑动
- mat博客
- magento 派发事件
- <iOS>关于Xcode上的Other linker flags
- Spark1.3.1集群部署
- 提高篇26-27课第四题
- 黑马程序员——交通灯管理系统
- MFC六大核心机制之五、六:消息映射和命令传递
- cdoj 03 BiliBili, ACFun… And More! 水题
- MFC六大核心机制之四:永久保存(串行化)
- Linux系统编程——进程间通信:信号中断处理
- 作业6--超级无敌终结(冲刺二)
- Docker生态系统系列之一:常用组件介绍
- 指针与数组用法笔记
- 【iOS百度地图系列_1】在地图上定位当前位置