洛谷题解 P1051 【谁拿了最多奖学金】

其实很水

链接:

P1051 【谁拿了最多奖学金】

注意:

看好信息,不要看漏或看错因为信息很密集

AC代码:

 1 #include<bits/stdc++.h>//头文件
 2 using namespace std;//开辟名称空间
 3 struct st//结构体
 4 {
 5     string na;
 6     int sc1,sc2,jxj,lws;
 7     char gb,xb,bb;
 8 };//分号注意
 9 //以上是定义结构体===========
10 bool cmp(st x,st y)
11 {
12     if(x.jxj>y.jxj || x.jxj==y.jxj && x.bb<y.bb)return true;
13     else return false;
14 }
15 //以上是定义结构体排序规则=======
16 st xs[105];//定义结构数组
17 int N,zjxj;//普通定义
18 int main()//开始
19 {
20     cin>>N;//输入
21     for(int i=0;i<N;i++)
22     {
23         cin>>xs[i].na>>xs[i].sc1>>xs[i].sc2>>xs[i].gb>>xs[i].xb>>xs[i].lws;//输入所以规则
24         xs[i].bb=i;//装入相应编号
25     }
26     for(int i=0;i<N;i++)
27     {
28         //以下为判断==============
29         if(xs[i].sc1>80 && xs[i].lws>=1) xs[i].jxj+=8000;
30         if(xs[i].sc1>85 && xs[i].sc2>80) xs[i].jxj+=4000;
31         if(xs[i].sc1>90) xs[i].jxj+=2000;
32         if(xs[i].sc1>85 && xs[i].xb=='Y') xs[i].jxj+=1000;
33         if(xs[i].sc2>80 && xs[i].gb=='Y') xs[i].jxj+=850;
34         //以上为判断==============
35         zjxj+=xs[i].jxj;//算出最终奖学金,累加
36 }
37     sort(xs,xs+N,cmp);//排序奖学金数量,调用规则
38 
39     cout<<xs[0].na<<endl;//输出最大名字
40     cout<<xs[0].jxj<<endl;//输出最大奖学金
41     cout<<zjxj;//输出总奖学金
42 
43     return 0;//结束
44 }
作者:BiuBiu_Miku

-----------------------------------------------

个性签名:天生我材必有用,千金散尽还复来!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

原文地址:https://www.cnblogs.com/BiuBiu-Miku/p/12249022.html