【题目描述】
牛牛最近学习了 C++入门课程,这门课程的总成绩计算方法是:
总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
牛牛想知道,这门课程自己最终能得到多少分。
【输入】
只有 1 行,包含三个非负整数A、B、C,分别表示牛牛的作业成绩、小测 成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。
【输出】
只有 1 行,包含一个整数,即牛牛这门课程的总成绩,满分也是 100 分。
【输入样例】
100 100 80
【输出样例】
90
【提示】
【输入输出样例 1 说明】 牛牛的作业成绩是 100 分,小测成绩是 100 分,期末考试成绩是 80 分,总成 绩是 100 × 20% + 100 × 30% + 80 × 50% = 20 + 30 + 40 = 90。
【输入输出样例 2】
输入:
60 90 80
输出:
79
【输入输出样例 2 说明】 牛牛的作业成绩是 60 分,小测成绩是 90 分,期末考试成绩是 80 分,总成绩是 60 × 20% + 90 × 30% + 80 × 50% = 12 + 27 + 40 = 79。
【数据说明】
对于 30% 的数据,A = B = 0。
对于另外 30% 的数据,A = B = 100。
对于 100% 的数据, 0 ≤ A、B、C ≤ 100 且 A、B、C 都是 10 的整数倍。
【解题思路】
1. 读取输入
- 首先,需要从输入中读取三个非负整数
A
、B
、C
,分别代表牛牛的作业成绩、小测成绩和期末考试成绩。
2. 计算总成绩
- 根据题目给出的总成绩计算公式,计算牛牛的总成绩。公式如下:
这里需要注意,计算时要保持成绩的精度,避免因为整数除法而丢失小数部分。因此,需要将成绩转换为浮点数进行计算。总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
3. 输出结果
- 将计算出的总成绩四舍五入到最接近的整数,并输出这个整数作为牛牛这门课程的总成绩。
实现提示
- 在实现时,由于成绩是以10的整数倍给出,直接使用整型变量接收输入即可。在计算总成绩时,为了保证计算的准确性,可以先将每部分成绩乘以对应的百分比,转换为浮点数进行计算,然后再将计算结果四舍五入到最接近的整数。
这是一个比较基础的编程问题,主要考察的是基本的数学运算和数据类型转换。
【代码实现】
#include <iostream>
#include <cmath> // 引入cmath库用于四舍五入操作
using namespace std;
int main() {
int A, B, C; // 分别表示作业成绩、小测成绩和期末考试成绩
cin >> A >> B >> C; // 从标准输入读取三项成绩
// 计算总成绩,注意将整数转换为浮点数进行计算,以保持精度
// 使用round函数四舍五入到最接近的整数
int totalScore = round(A * 0.2 + B * 0.3 + C * 0.5);
cout << totalScore << endl; // 输出计算得到的总成绩
return 0;
}