匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 4 年前

C++ 輸入三角形三邊長a, b,c,利用海龍公式求三角形面積 area,並輸出至小數點3 位數 海龍公式 • s = ( a + b + c) / 2; • area = sqrt ( s * (s‐a) * (s‐b) * (s‐c) );?

1 個解答

評分
  • 4 年前
    最佳解答

    #include<math.h>

    #include<iostream>

    using namespace std;

    template <typename T>

    class TRI {

    T x,y,z;

    public:

    TRI(T a,T b,T c):x(a),y(b),z(c){

    if(a+b<=c || a+c<=b || b+c<=a) throw 1;

    }

    double area(){

    double s=0.5*(x+y+z);

    return sqrt(s*(s-x)*(s-y)*(s-z));

    }

    };

    int main(void){

    for(int x,y,z; cout<<"輸入三角形三邊長a,b,c:" && cin>>x>>y>>z;)

    try{

    TRI<int> a1(x,y,z);

    cout << "area=" << a1.area() <<endl;

    } catch(int e){

    cout << "bad numbers. quitting..." <<endl;

    return e;

    }

    return 0;

    }

還有問題?馬上發問,尋求解答。