我正在與C++的任務。基本上我採取雙方,假設他們的較小的一面或斜邊,然後用功能吐出剩餘的一面。看起來很簡單,我99%確定我的數學是正確的功能部分,但我不斷得到奇怪的大答案。代碼來計算畢達哥拉斯定理
#include<iostream>
#include<cmath>
using namespace std;
double otherSideLength(double, double);
int main() {
double a_small_side;
double hypotenuse;
double swapStore = 0;
double otherSide = 0;
cin >> a_small_side;
cin >> hypotenuse;
if(a_small_side == hypotenuse){
cout << "ERROR" << endl;
cout << "0";
}
if(a_small_side < hypotenuse){
otherSide = otherSideLength(a_small_side, hypotenuse);
cout << otherSide;
}
if(a_small_side > hypotenuse){
swapStore = a_small_side;
a_small_side = hypotenuse;
hypotenuse = swapStore;
otherSide = otherSideLength(a_small_side, hypotenuse);
cout << otherSide;
}
}
double otherSideLength(double a_small_side, double hypotenuse){
//a^2+b^2=c^2,
//b^2 = c^2 + a^2
//b = sqrt(c^2 + a^2)
double b = sqrt(pow(hypotenuse, 2) + pow(a_small_side, 2));
return b;
}
如果有人想快速瀏覽一下,那很棒。
當您移動^ 2到方程的右手側應該是負的。換句話說,當你應該減去^ 2時,你正在添加^ 2。 – csmckelvey
「但我不斷得到奇怪的大答案」 - 比如?小心分享?示例應該是*問題的一部分*。 –
請不要將「已解決」添加到標題中。只要接受幫助你的答案。 –