c++大神入!!!! 题目描述:一架民航飞机起飞角度通常在5-15度的倾斜

2025-04-15 05:31:41
推荐回答(1个)
回答1:

转换成数学问题,也就是说。。。用几何来描述问题就是:一个直角三角形,高height=10km,由底边和斜边构成角度alpha,输入的角度alpha (5deg <= alpha <= 15deg),求底边长width。

我们知道直角三角形有一个关系:tan(alpha) = height / width。所以width = height / tan(alpha)。而从alpha的角度范围可知tan(alpha)不会是0,不会有除零问题。

然后c++的math.h里有提供tan函数。所以问题就简单了:

#include 
#include 

using namespace std;

// 求飞机以alpha角度起飞,到达1万米高空后,距离机场的水平距离,单位KM。
// 5度 <= alpha <= 15度
float horizonalDistanceKM(float alpha) {
    static const float HEIGHT_KM = 10.0f; // 1万米高度相当于10KM
    return HEIGHT_KM / tan(alpha);
}

int main() {
    int alpha;
    cin >> alpha;
    if (alpha >= 5 && alpha <= 15) {
        float distanceKM = horizonalDistanceKM((float)alpha);
        printf("%.3fKM\n", distanceKM); // 保留三位小数并后缀KM
    } else {
        cout << "error" << endl;
    }
    return 0;
}