
分析问题:
小明有三门考试的成绩:语文(x)、数学(y)、英语(z)。我们需要做两件事:
- 计算总分:把三科成绩加起来。
- 计算平均分:把总分除以3(保留1位小数)。
建立模型(五年级学生版):
想象有三个盒子:
- 第一个盒子装了语文成绩(比如100个苹果)
- 第二个盒子装了数学成绩(比如95个苹果)
- 第三个盒子装了英语成绩(比如91个苹果)
- 总分:把三个盒子的苹果全部倒进一个大箱子,数一数总共有多少苹果(100+95+91=286)
- 平均分:把大箱子里的苹果平均分成3份(286÷3≈95.3),每份就是平均分(保留1位小数)
编写程序(C++):
#include <bits/stdc++.h>
using namespace std;
int main() {
int x, y, z;
cin >> x >> y >> z; // 输入三科成绩
// 1. 计算总分(把三个数加起来)
int sum = x + y + z;
// 2. 计算平均分(总分÷3.0,注意用3.0保证得到小数)
double average = sum / 3.0;
// 输出结果
cout << sum << endl; // 第一行输出总分(整数)
cout << fixed << setprecision(1) << average << endl; // 第二行输出平均分(保留1位小数)
return 0;
}
保存 编译 运行
关键点解释:
int sum = x + y + z:把三科成绩相加得到总分。double average = sum / 3.0:
- 用
3.0而不是3,这样计算时会保留小数部分(100÷3=33.333,但100÷3.0=33.333)。
setprecision(1):设置小数点后保留1位(比如95.333会显示为95.3)。fixed:固定小数位数格式(必须和setprecision配合使用)。
样例验证:
输入:100 95 91
- 总分 = 100 + 95 + 91 = 286
- 平均分 = 286 ÷ 3.0 ≈ 95.333 → 保留1位小数后是95.3
输出:
286
95.3