Bootstrap

7-5 输出三角形面积和周长 (10 分)

本题要求编写程序,根据输入的三角形的三条边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

想法:显然难点在于判断三角形的语句怎么描述,数学上说两边之和大于第三边,差小于第三边。 以及调用函数sqrt开平方。

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    double area,s;
    if(a+b>c&&a+c>b&&b+c>a)
    {    
       s=(a+b+c)/2.0;
       area=sqrt(s*(s-a)*(s-b)*(s-c));//sqrt后面加()
       printf("area = %.2f; perimeter = %.2f",area,s*2.0);//周长可利用s*2直接得到
    }
    else
        printf("These sides do not correspond to a valid triangle");
    return 0;
}    

 提炼:判断三角形语句"a+b>c&&a+c>b&&b+c>a"任意两边之和大于第三边即可,突出任意二字,只要三个,不要六个,也不止一个。

;