(s-b)(s-可,其中s =(a+b+ c)/2。
输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:
如果输入的边能构成一个三角形,则在一行内,按照
area =面积; perimeter =周长
的格式输出,保留两位小数。否则,输出
These sides do not conrespond to a valid triangle
代码如下,有帮助的话记得采纳一下哦!
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
double area,perimeter,s;
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a||a==b==c)
{
s = (a+b+c)/2;
area = sqrt(s*(s-a)*(s-b)*(s-c));
perimeter = a+b+c;
printf("area = %.2lf; perimeter = %.2lf",area,perimeter);
}else{
printf("These sides do not correspond to a valid triangle");
}
}
注意,abc最好定义成浮点型,这样即可以处理非整数边长,还能避免s=(a+b+c)/2;
可能的精度丢失。
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c;
double area, perimeter,s;
scanf("%lf %lf %lf",&a,&b,&c);
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));
perimeter = a+b+c;
printf("area = %.2lf; perimeter = %.2lf",area,perimeter);
}else{
printf("These sides do not correspond to a valid triangle");
}
return 0;
}