竞赛
考级
思路: 这题完全可以不用结构体,我们可以用max_reward来记录当前最多的奖学金,用max_name来记录当前奖学金最多的学生的姓名,用sum来记录当前所有学生奖学金的总和。每次输入一组学生信息,用一堆if else来计算当前学生的奖学金,用一个变量reward来储存,如果reward比max_reward大(就是当前学生的奖学金比前面最多的奖学金还高),则更新max_reward和max_name。另外每次循环时sum要加上当前学生的奖学金数量。最后循环结束后输出max_name、max_reward和sum。 代码:
直接看题狂打if即可
这一题主要考的就是if函数,当然我们也可以使用三目运算符 这段代码是进行过优化的,具体表现在只用了一个循环 给大家介绍一下,第一行注解里的freopen函数是文件操作,作用是从一个文件里导入输入或将输出导进指定文件,当然ACgo不需要用,但某些比赛需要用它 好了上代码:
这道题运用结构体存储学员数据,按要求计算各自奖学金,并输出要求的数据 写时有点费脑子 代码如下(最朴实易懂的写法):
详细解题步骤 1. 问题分析 ·目标:计算每个学生的奖学金总额,找出获得最多的学生,并统计所有学生的总奖学金 ·关键:每个学生可同时获得多项奖学金,需逐一判断是否符合各项条件 ·注意:若有多名学生奖金相同,选择输入顺序中最早出现的学生 2. 数据准备 输入信息:学生姓名、期末平均成绩、班级评议成绩、是否学生干部、是否西部学生、发表论文数 奖学金种类及条件: ·院士奖学金 (8000 元):期末成绩 > 80 且论文≥1 ·五四奖学金 (4000 元):期末成绩 > 85 且班级评议 > 80 ·成绩优秀奖 (2000 元):期末成绩 > 90 ·西部奖学金 (1000 元):期末成绩 > 85 且是西部学生 ·班级贡献奖 (850 元):班级评议 > 80 且是学生干部 3. 算法设计 读取学生总数 N 初始化变量 循环处理每个学生 输出结果:最高奖学金获得者姓名、金额、总金额 AC代码:
空降坐标:CP002788 来源:NOIP2005 提高组 请看代码
想法: 1.这道题乍一眼看上去可能要用结构体排序 实际上结构体的使用并不必要 进需要在输入时将数据保存入结构体即可; 2.可以在输入后紧跟着判断 这个人的信息能获得什么奖项 并存入相应的数组 如b数组(存放获奖数量),ans存放总钱数 ,sore数组(存放各个人的钱数); 3.在判断完后 运用for循环 找出b数组中获奖数最多的人的对应下标 和获奖数量; 4.最后将获奖人 获奖金额 和总获奖金额输出即可;
狂打if君
我30分钟写的代码: 老师先写了一个错了4个地方结果让我改了30分钟的代码(不知道他是不是故意的🤬🤬🤬):
这是一道好(shui)题
解: 欢迎参考代码
提交答案之后,这里将显示提交结果~