测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
B33

练习:顺逆流、角度弧度、预测身高

引入

章前总览 继续练顺序结构:先列方程再写代码;注意整数除法与浮点保留位数。

三道练习:

  • 顺逆流:a=(u+v)/2,b=(u-v)/2
  • 角度→弧度:2πa/360
  • 预测身高:男孩 (f+m)×0.54

1 练习1:顺流而下和逆流而上

已知顺流速度 u、逆流速度 v(u>v),求船速 a 与流速 b。

关系式

  • a + b = u,a − b = v。
  • 解得 a = (u+v)/2,b = (u−v)/2。
  • 样例:7 5 → 6 1。

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    int u, v;
    cin >> u >> v;
    int a = (u + v) / 2;
    int b = (u - v) / 2;
    cout << a << " " << b << endl;
    return 0;
}
  • 测试数据保证 a、b 均为整数。

2 练习2:角度和弧度的转换

弧度 = 2π × 角度 / 360,π 取 3.1415926。输入角度 a,输出弧度,保留 2 位小数。

</> 参考代码

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int a;
    cin >> a;
    double r = 2 * 3.1415926 * a / 360;
    cout << fixed << setprecision(2) << r << endl;
    return 0;
}
  • 样例:360 → 6.28;100 → 1.75。
  • 一周 360° = 2π 弧度。

3 练习3:预测孩子身高

输入父母身高(厘米),输出预测的男孩、女孩身高,保留 1 位小数。

公式

  • 男孩 = (父亲 + 母亲) × 1.08 / 2,可写成 (f+m)*0.54
  • 女孩 = (父亲 + 0.923 × 母亲) / 2。
  • 样例:170 165 → 180.9 161.1。

</> 参考代码

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double f, m;  // 父母身高
    double s, d;  // 男孩、女孩
    cin >> f >> m;
    s = (f + m) * 0.54;
    d = 0.5 * (f + 0.923 * m);
    cout << fixed << setprecision(1) << s << " " << d << endl;
    return 0;
}
小结

遇到“已知两个量求另两个量”,先写方程再翻译成代码。

列式 → 化简 → 顺序写出 cin / 计算 / cout
里程碑达成:

下一节看一点计算机小知识:结构化设计与面向对象语言。