【发布时间】:2019-04-21 03:02:50
【问题描述】:
我正在尝试检查 3 个边是否在 C++ 中形成一个三角形,但我尝试过的所有可能数字的答案都说错了...
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (pow(a,2) == pow(b,2) * pow(c,2) || pow(b,2) == pow(a,2) * pow(c,2) || pow(c,2) == pow(a,2) * pow(b,2))
cout << "The sides form a triangle" << endl;
else
cout << "The sides do not form a triangle." << endl;
return 0;
}
【问题讨论】:
-
我认为任意两条边之和大于三边或任意两条边之差小于三边?是检查它的简单方法..
-
并非所有三角形都有直角。
-
我不认为您的直角三角形公式是正确的,除非我很愚蠢并且您正在做一些不同的事情。毕达哥拉斯是 a^2 = b^2 + c^2 不是时间
-
您的程序背后的数学推理是什么? (如果您正在检查直角三角形,那应该是
+而不是*) -
您必须记住
pow正在处理浮点值,因此您可能需要阅读 What Every Computer Scientist Should Know About Floating-Point Arithmetic。