#温馨提示:此文章使用的是MD编辑器,在小程序上查看可能会出现乱码,敬请谅解
【题目链接】P1051 [NOIP2005 提高组] 谁拿了最多奖学金
通过题目,我们可以看出该题可以运用if
语句判断是否达到奖学金的资格,再进行累加等一系列操作即可,同时还涉及了字符串的使用等。
比较简单,直接上代码
AC代码如下
// C++
#include<iostream>
#include<cstring>
using namespace std;
char s[100][20];
int main(){
char c1,c2;
int n,sum=0,max=0,s1,s2,num,a,b,k;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i]>>s1>>s2>>c1>>c2>>num;
a=c1=='Y'?1:0; // 是否是学生干部
b=c2=='Y'?1:0; // 是否是西部省份学生
int tmp=0;
if(s1>80 && num>0) tmp+=8000; // 院士奖学金
if(s1>85 && s2>80) tmp+=4000; // 五四奖学金
if(s1>90) tmp+=2000; // 成绩优秀奖
if(b && s1>85) tmp+=1000; // 西部奖学金
if(a && s2>80) tmp+=850; // 班级贡献奖
sum+=tmp; //奖学金总数
if(tmp>max){ //获奖金最高的学生
max=tmp;
k=i;
}
}
cout<<s[k]<<endl<<max<<endl<<sum<<endl;
return 0;
}