本題要求編寫程序,根據輸入的三角形的三條邊a、b、c,計算并輸出面積和周長。注意:在一個三角形中, 任意兩邊之和大于第三邊。三角形面積計算公式:area=s(s?a)(s?b)(s?c)?,其中s=(a+b+c)/2。
輸入格式:
輸入為3個正整數,分別代表三角形的3條邊a、b、c。
輸出格式:
如果輸入的邊能構成一個三角形,則在一行內,按照
area = 面積; perimeter = 周長
的格式輸出,保留兩位小數。否則,輸出
These sides do not correspond to a valid triangle
輸入樣例1:
5 5 3
輸出樣例1:
area = 7.15; perimeter = 13.00
輸入樣例2:
1 4 1
輸出樣例2:
These sides do not correspond to a valid triangle
分析:
- 包含<stdio.h>頭文件以使用printf和scanf函數。
- 在main函數中定義三個整數a, b, c來存儲三角形的三條邊的長度。
- 定義兩個double類型的變量area和s,以及一個double類型的變量perimeter來存儲三角形的面積、半周長和周長。
- 使用scanf函數從用戶那里接收三個整數作為三角形的三條邊的長度。
- 計算半周長s,方法是把a、b、c相加然后除以2.0。
- 計算三角形的周長,方法是把a、b、c相加。
- 檢查a、b、c是否滿足構成三角形的條件,即任意兩邊之和大于第三邊。如果不滿足這個條件,打印出錯誤消息并結束程序。
- 如果滿足構成三角形的條件,那么使用海倫公式計算三角形的面積。這是通過計算s、(s-a)、(s-b)、(s-c)的乘積的平方根來完成的。但是,為了確保結果的準確性,我們需要在計算面積之前檢查a、b、c是否為非負數。
- 如果a、b、c都是非負數,那么打印出面積和周長的值。否則,打印出錯誤消息并結束程序。
- 程序結束時返回0。
?
C語言:
#include<stdio.h>int main()
{int a,b,c;double area,s,perimeter;scanf("%d %d %d",&a,&b,&c);s=(a+b+c)/2.0;perimeter=a+b+c;area=pow(s*(s-a)*(s-b)*(s-c),0.5);if((a+b)>c&&(a+c)>b&&(b+c)>a){printf("area = %.2lf; perimeter = %.2lf",area,perimeter);}else{printf("These sides do not correspond to a valid triangle");}return 0;
}
結果:
總結:
這是代碼的基本思路。然而,代碼中存在一些問題。首先,它沒有正確地處理負數輸入。其次,它沒有正確地處理不滿足三角形條件的輸入。因此,我們需要對代碼進行修改以解決這些問題。?