C語言-根據輸入的三角形的三條邊判斷三角形的型別,並輸出它的面積和型別
阿新 • • 發佈:2018-12-29
思路:首先判斷所給的三條邊是否能夠組成三角形,若可以組成三角形,則判斷該三角形是什麼型別,並求三角形的面積。相關知識:三角形是由同一平面內不在同一直線上的三條線段‘首尾’順次連線所組成的封閉圖形。常見的三角形按邊分有普通三角形(三條邊都不相等),等腰三角(腰與底不等的等腰三角形、腰與底相等的等腰三角形即等邊三角形)不等邊三角形:不等邊三角形,數學定義,指的是三條邊都不相等的三角形叫不等邊三角形。等腰三角形:等腰三角形(isosceles triangle),指兩邊相等的三角形,相等的兩個邊稱為這個三角形的腰。等腰三角形中,相等的兩條邊稱為這個三角形的腰,另一邊叫做底邊。兩腰的夾角叫做頂角,腰和底邊的夾角叫做底角。等腰三角形的兩個底角度數相等(簡寫成 “等邊對等角”)。等腰三角形的頂角的平分線,底邊上的中線,底邊上的高重合(簡寫成“等腰三角形的三線合一性質”)。等腰三角形的兩底角的平分線相等(兩條腰上的中線相等,兩條腰上的高相等)。等腰三角形底邊上的垂直平分線到兩條腰的距離相等。等腰三角形的一腰上的高與底邊的夾角等於頂角的一半。等腰三角形底邊上任意一點到兩腰距離之和等於一腰上的高(需用等面積法證明)。等腰三角形是軸對稱圖形,(不是等邊三角形的情況下)只有一條對稱軸,頂角平分線所在的直線是它的對稱軸,等邊三角形有三條對稱軸。等腰三角形中腰的平方等於高的平方加底的一半的平方。等腰三角形的腰與它的高的關係,直接的關係是:腰大於高。間接的關係是:腰的平方等於高的平方加底的一半的平方。 等邊三角形:等邊三角形(又稱正三角形),為三邊相等的三角形,其三個內角相等,均為60°,它是銳角三角形的一種。等邊三角形也是最穩定的結構。等邊三角形是特殊的等腰三角形,所以等邊三角形擁有等腰三角形的一切性質。直角三角形:有一個角為直角的三角形稱為直角三角形。在直角三角形中,直角相鄰的兩條邊稱為直角邊。直角所對的邊稱為斜邊。若a的平方+b的平方=c的平方,則以a、b、c為邊的三角形是以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普通三角形