CP002788题解
2023-07-25 10:22:21
发布于:上海
182阅读
0回复
0点赞
思路:
这题完全可以不用结构体,我们可以用max_reward来记录当前最多的奖学金,用max_name来记录当前奖学金最多的学生的姓名,用sum来记录当前所有学生奖学金的总和。每次输入一组学生信息,用一堆if else来计算当前学生的奖学金,用一个变量reward来储存,如果reward比max_reward大(就是当前学生的奖学金比前面最多的奖学金还高),则更新max_reward和max_name。另外每次循环时sum要加上当前学生的奖学金数量。最后循环结束后输出max_name、max_reward和sum。
代码:
#include <iostream>
using namespace std;
int n,x,y,z,sum,reward,max_reward;
string name,max_name;
char c1,c2;
int main()
{
cin >> n;
for(int i = 1; i <= n; ++i)
{
reward=0;
cin >> name >> x >> y >> c1 >> c2 >> z;
if(x>80 && z>=1) reward+=8000;
if(x>85 && y>80) reward+=4000;
if(x>90) reward+=2000;
if(c2=='Y' && x>85) reward+=1000;
if(c1=='Y' && y>80) reward+=850;
if(reward > max_reward)
{
max_name=name;
max_reward=reward;
}
sum+=reward;
}
cout << max_name << endl << max_reward << endl << sum << endl;
return 0;
}
全部评论 1
good good good!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2023-07-25 来自 上海
0
有帮助,赞一个