3805 谁拿了最多的奖学金 好多好多的条件
喜欢这么多条件判断的程序嘛?^^
#include<bits/stdc++.h> #define f(i,s,e) for(int i = s; i <= e; i++) #define ll long long using namespace std; const int N = 1e3+10,inf = 0x3f3f3f3f; struct node{ string name,gb,xb; //名字、干部、西部学生 int qm,py,lw; //期末、评议、论文 int money; //总奖学金 int id; }; node a[N]; int n; bool cmp(node a,node b) { if(a.money == b.money) return a.id < b.id;//********** else return a.money > b.money; } int main() { cin >> n; int ans = 0; for(int i = 1; i <= n; i++) { cin >> a[i].name >> a[i].qm >> a[i].py >> a[i].gb >> a[i].xb >> a[i].lw; int sum = 0; //用来算得了多少钱 if(a[i].qm > 80 && a[i].lw >= 1) sum += 8000; //院士奖学金 if(a[i].qm > 85 && a[i].py > 80) sum += 4000; //五四奖学金 if(a[i].qm > 90) sum += 2000; //成绩优秀奖 if(a[i].qm > 85 && a[i].xb == "Y") sum += 1000; //西部奖学金 if(a[i].py > 80 && a[i].gb == "Y") sum += 850; //班级贡献奖 ans += sum; //记录累加的总钱数 a[i].money = sum; //记录每名学生的钱 a[i].id = i; //记录这是第i位学生 ****** } sort(a + 1, a + 1 + n, cmp); cout << a[1].name << endl; cout << a[1].money << endl; cout << ans << endl; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现