B32
案例:BMI、摄氏转华氏、分苹果
引入
章前总览 三道题都是典型顺序结构:先输入,再按公式算,最后输出。体会“步骤清晰 = 好算法”。
三道案例:
- BMI:t = w/(h*h),保留 2 位
- 温度:F = 1.8*C + 32
- 分苹果:答案 n/m + 1(抽屉原理)
1 案例1:体质指数 BMI
输入体重 w(kg)和身高 h(m),计算 t = w/(h²),保留 2 位小数。
步骤(顺序结构)
- 输入体重和身高 → 求 t → 输出 t。
- 样例:70 1.72 → 23.66。
参考代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double w, h, t;
cin >> w >> h;
t = w / (h * h);
cout << fixed << setprecision(2) << t << endl;
return 0;
}
- 分母写成
h*h,不要漏括号。
2 案例2:摄氏温度转华氏温度
公式:F = 1.8 × C + 32。输入摄氏 C(范围 [−20, 100]),输出华氏,保留 2 位。
参考代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double c, f;
cin >> c;
f = 1.8 * c + 32;
cout << fixed << setprecision(2) << f << endl;
return 0;
}
- 样例:37.2 → 98.96。
- 室温、体温日常说的“度”,一般指摄氏度。
3 案例3:分苹果
n 个苹果分给 m 个人(n 不是 m 的倍数),分得最多的人至少分到几个?
抽屉原理思路
- 先每人平均
n/m个,还剩n%m个。 - 把剩余的再每人至多再分 1 个,则“最多的人”至少拿到
n/m+1。 - 样例:20 个分 3 人 → 7。
参考代码
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
cout << n / m + 1 << endl;
return 0;
}
- 题目保证 n 不是 m 的倍数,所以答案就是整数商再加 1。
小结
顺序结构做题模板:
读入 → 按公式计算 → 按规定格式输出
✓
里程碑达成:
下一节练习:顺逆流速度、角度转弧度、预测身高。