解题思路:定义结构体+结合sort排序+自定义类型排序
注意事项:两个获得奖金一致时,按输入顺序输出先输入的
参考代码:
#include <iostream>
#include <algorithm>
using namespace std;
struct student {
char name[20];
int fin_aver,cla,num_paper,get_money=0,id;
char is_s,is_w;
} T[101];
bool cmp(struct student a,struct student b) {
if(a.get_money!=b.get_money) return a.get_money > b.get_money;
else return a.id<b.id;
}
int main () {
int n,sum_money=0;
cin>>n;
for(int i=0; i<n; ++i) {
T[i].id=i+1;
cin>>T[i].name>>T[i].fin_aver>>T[i].cla>>T[i].is_s>>T[i].is_w>>T[i].num_paper;
if(T[i].fin_aver>80 && T[i].num_paper>=1) T[i].get_money+=8000;
if(T[i].fin_aver>85 && T[i].cla>80) T[i].get_money+=4000;
if(T[i].fin_aver>90) T[i].get_money+=2000;
if(T[i].fin_aver>85 && T[i].is_w=='Y') T[i].get_money+=1000;
if(T[i].cla>80 && T[i].is_s=='Y') T[i].get_money+=850;
sum_money+=T[i].get_money;
}
sort(T,T+n-1,cmp);
cout<<T[0].name<<endl<<T[0].get_money<<endl<<sum_money<<endl;
return 0;
}
0.0分
0 人评分
K-进制数 (C++代码)浏览:938 |
C二级辅导-计负均正 (C语言代码)浏览:652 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:690 |
大神老白 (C语言代码)浏览:690 |
兰顿蚂蚁 (C++代码)浏览:1159 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1396 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:570 |
用筛法求之N内的素数。 (C++代码)浏览:754 |
1017题解浏览:663 |