我在C++中有以下函數,它應該用Heron公式找到三角形的面積。我沒有犯數學錯誤,但沒有產生正確的結果!我看了3個多小時,我找不到任何錯誤。我錯過了什麼?計算三角形面積的C++函數
float TriangleArea(float x0, float y0, float x1, float y1, float x2, float y2)
{
float area_triangle;
float a, b, c, s;
a=std::sqrt((x0-x1)*(x0-x1)-(y0-y1)*(y0-y1));
b=std::sqrt((x1-x2)*(x1-x2)-(y1-y2)*(y1-y2));
c=std::sqrt((x0-x2)*(x0-x2)-(y0-y2)*(y0-y2));
s=(a+b+c)/2;
area_triangle=std::sqrt((s*(s-a)*(s-b)*(s-c)));
return area_triangle;
}
請提供樣本輸入,預期輸出和實際輸出。 – 2015-03-31 19:00:34
任何子表達式都已經錯了嗎? – 2015-03-31 19:00:58
'我看了3個多小時'然後打印出'a','b'和'c'的每一個值,並計算semiperimeter's'並查看哪個不正確。寫入3或4個'printf()'或'cout'行不需要3個小時。 – PaulMcKenzie 2015-03-31 19:10:20