1. 程式人生 > >C語言-根據輸入的三角形的三條邊判斷三角形的型別,並輸出它的面積和型別

C語言-根據輸入的三角形的三條邊判斷三角形的型別,並輸出它的面積和型別

思路:首先判斷所給的三條邊是否能夠組成三角形,若可以組成三角形,則判斷該三角形是什麼型別,並求三角形的面積。相關知識:三角形是由同一平面內不在同一直線上的三條線段首尾順次連線所組成的封閉圖形。常見的三角形按邊分有普通三角形(三條邊都不相等),等腰三角(腰與底不等的等腰三角形、腰與底相等的等腰三角形即等邊三角形)不等邊三角形:不等邊三角形,數學定義,指的是三條邊都不相等的三角形叫不等邊三角形。等腰三角形:等腰三角形(isosceles triangle),指兩邊相等的三角形,相等的兩個邊稱為這個三角形的腰。等腰三角形中,相等的兩條邊稱為這個三角形的腰,另一邊叫做底邊。兩腰的夾角叫做頂角,腰和底邊的夾角叫做底角。等腰三角形的兩個底角度數相等(簡寫成
等邊對等角)。等腰三角形的頂角的平分線,底邊上的中線,底邊上的高重合(簡寫成等腰三角形的三線合一性質)。等腰三角形的兩底角的平分線相等(兩條腰上的中線相等,兩條腰上的高相等)。等腰三角形底邊上的垂直平分線到兩條腰的距離相等。等腰三角形的一腰上的高與底邊的夾角等於頂角的一半。等腰三角形底邊上任意一點到兩腰距離之和等於一腰上的高(需用等面積法證明)。等腰三角形是軸對稱圖形,(不是等邊三角形的情況下)只有一條對稱軸,頂角平分線所在的直線是它的對稱軸,等邊三角形有三條對稱軸。等腰三角形中腰的平方等於高的平方加底的一半的平方。等腰三角形的腰與它的高的關係,直接的關係是:腰大於高。間接的關係是:腰的平方等於高的平方加底的一半的平方。
等邊三角形:等邊三角形(又稱正三角形),為三邊相等的三角形,其三個內角相等,均為60°,它是銳角三角形的一種。等邊三角形也是最穩定的結構。等邊三角形是特殊的等腰三角形,所以等邊三角形擁有等腰三角形的一切性質。直角三角形:有一個角為直角的三角形稱為直角三角形。在直角三角形中,直角相鄰的兩條邊稱為直角邊。直角所對的邊稱為斜邊。若a的平方+b的平方=c的平方,則以abc為邊的三角形是以c為斜邊的直角三角形(勾股定理的逆定理)。判斷三條線段能否組成三角形的依據是三角形三邊關係的定理:三角形任何兩邊的和大於第三邊和它的推論:三角形任何兩邊的差小於第三邊計算面積方式:使用邊長進行計算1:計算三角形的半周長。半周長等於圖形周長的一半。想算出三角形的半周長,需要先將三角形的三條邊長加起來求出周長,然後乘以
1/2;

2:用海倫公式求三角形面積。海倫公式如下:


具體實現和分析:

通過輸入三角形的三條邊,首先判斷兩邊之和是否大於第三邊,若大於第三邊則進一步判斷該三角形是什麼三角形,3邊相等為等邊三角形,兩邊相等為等腰三角形,滿足兩邊平方之和等於第三邊的平方即是直角三角形,其餘為普通三角形,否則輸入的三角形不能夠組成三角形。

void decideTrangleType(){

    float a,b,c; //定義 a,b,c為三條邊
    float s,area;
    
    printf("請輸入三角形的三條邊:\n");
    rewind(stdin);//清空快取區的所有資料
    scanf("%f%f%f",&a,&b,&c);
    
    if (a+b>c && b+c>a && a+c>b) {          //判斷兩邊之和是否大於第三邊
        s = (a+b+c)/2;                      //計算半周長
        area = sqrt(s*(s-a)*(s-b)*(s-c));  //計算三角形面積
        printf("面積是:%f",area);
        if (a==b && a==c) {                 //判斷三條邊是否相等
            printf("等邊三角形\n");
        }else if (a==b || a==c || b==c){    //判斷是否有兩條邊相等
            printf("等腰三角形\n");
        }else if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a){ //判斷是否兩邊平方之和等於第三邊的平方
            printf("直角三角形\n");
        }else{
            printf("普通三角形\n");
        }
    }else{
        printf("不能構成三角形\n");
    }
}

相關測試資料:

Hello, World!

請輸入三角形的三條邊:

345

面積是:6.000000直角三角形

333

面積是:3.897114等邊三角形

343

面積是:4.472136等腰三角形

3610

不能構成三角形


7 8 9

面積是:26.832815普通三角形