题解:洛谷 P5744 【深基7.习9】培训
【题目来源】
洛谷:P5744 【深基7.习9】培训 - 洛谷 (luogu.com.cn)
【题目描述】
某培训机构的学员有如下信息:
- 姓名(字符串)
- 年龄(周岁,整数)
- 去年 NOIP 成绩(整数,且保证是 \(5\) 的倍数)
经过为期一年的培训,所有同学的成绩都有所提高,提升了 \(20\%\)(当然 NOIP 满分是 \(600\) 分,不能超过这个得分)。
输入学员信息,请设计一个结构体储存这些学生信息,并设计一个函数模拟培训过程,其参数是这样的结构体类型,返回同样的结构体类型,并输出学员信息。
【输入】
第一行输入一个正整数 \(n\),表示学员个数。
第二行开始往下 \(n\) 行。每行首先是一个字符串表示学员姓名,再是一个整数表示学员年龄,再是一个整数为去年 NOIP 成绩。
【输出】
输出 \(n\) 行,每行首先输出一个字符串表示学生姓名,再往后两个整数,表示经过一年的培训后学员的年龄和他们今年的 NOIP 成绩。以空格隔开。
【输入样例】
3
kkksc03 24 0
chen_zhe 14 400
nzhtl1477 18 590
【输出样例】
kkksc03 25 0
chen_zhe 15 480
nzhtl1477 19 600
【算法标签】
《洛谷 P5744 培训》 #模拟#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
using namespace std; // 使用标准命名空间
// 定义学生结构体
struct student
{
string name; // 学生姓名
int age; // 学生年龄
int cj; // 学生成绩
};
int main()
{
student s[1005]; // 定义学生数组,最多存储1005个学生
int n; // 定义变量:学生数量
cin >> n; // 输入学生数量
// 输入每个学生的信息
for (int i = 1; i <= n; i++)
{
cin >> s[i].name >> s[i].age >> s[i].cj; // 输入姓名、年龄和成绩
}
// 处理每个学生的数据并输出结果
for (int i = 1; i <= n; i++)
{
s[i].cj += s[i].cj * 0.2; // 成绩增加20%
// 成绩上限为600分
if (s[i].cj > 600)
{
s[i].cj = 600;
}
// 输出处理后的学生信息(年龄+1,调整后的成绩)
cout << s[i].name << " " << s[i].age + 1 << " " << s[i].cj << endl;
}
return 0; // 程序正常结束
}
【运行结果】
3
kkksc03 24 0
chen_zhe 14 400
nzhtl1477 18 590
kkksc03 25 0
chen_zhe 15 480
nzhtl1477 19 600
浙公网安备 33010602011771号