题解 P1051 【谁拿了最多奖学金】
今天是本蒟蒻第一次发题解(还是蛮激动的)
看到自己博客里空空如也,开始还以为网卡了。。。
好,回归正题。
刚浏览了一遍dalao们发的老长老长的神犇题解,包含各种各样结构体,数组,函数......作为一个萌新菜鸟,我给大家写一个简洁明了最最没水平的代码
其实在我看来,
这道题真的太水了...
但是对于某些和我一样懒得写代码的同学来说,
噩梦!
对于这种题,教大家一种神奇的方法——一言不合狂打if
核心代码: 好像没有。。。
完整代码:(没有错误,请放心)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,score1,score2,sum=0,max=0,total=0,x,i;
char a,b;
string name,maxn;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>name>>score1>>score2>>a>>b>>x;
if(score1>80 && x>0)//判断是否获得院士奖学金
sum+=8000;
if(score1>85 && score2>80)//判断是否获得五四奖学金
sum+=4000;
if(score1>90)//判断是否获得成绩优秀奖
sum+=2000;
if(score1>85 && b=='Y')//判断是否获得西部奖学金
sum+=1000;
if(score2>80 && a=='Y')//判断是否获得班级贡献奖
sum+=850;
total+=sum;//累加奖学金
if(sum>max)//找出最牛学生
maxn=name,max=sum;//sum的用处
sum=0;
}
cout<<maxn<<endl<<max<<endl<<total;
return 0;
}
总之,还是比较简单的