小编Dan*_*mad的帖子

特定的直角三角形在 Cpp 中未被识别为直角

我们的 OOP 老师给了我一个作业。尽管我的代码看起来不错,但我正面临这个问题。

我必须从用户那里获取三角形顶点的坐标,并且必须判断它是否是直角三角形。所以我简单地使用毕达哥拉斯定理来找出它,众所周知使用条件:h * h = b * b + p * p

但令人惊讶的是,这不适用于某些特定的直角三角形。这是一个这样的三角形:

顶点 A: (x, y) = (1, 3)

顶点 B: (x, y) = (1, 1)

顶点 C: (x, y) = (5, 1)

计算完美,我通过打印计算得出了这一点,但仍然不起作用

然后我尝试通过这种方式使用库中的sqrt()函数cmath: h = sqrt(b * b + p * p)

逻辑上是一样的,但它起作用了。

我想明白,为什么之前的方法不起作用?

这是我的代码的简化版本

#include <iostream>
#include <cmath>

using namespace std;

class Vertex {

    double x, y;

public:
    void take_input(char …
Run Code Online (Sandbox Code Playgroud)

c++ cmath sqrt pythagorean

2
推荐指数
1
解决办法
71
查看次数

标签 统计

c++ ×1

cmath ×1

pythagorean ×1

sqrt ×1