#include
#include
int main(void)
{
double a,b,c,p;
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(a==b&&b==c)
{
printf("等边三角形\n");
}
else if(a==b||b==c||a==c)
{
printf("等腰三角形\n");
}
else
{
printf("不等边三角形\n");
}
p=(a+b+c)/2.0;
printf("%lf\n",sqrt(p*(p-a)*(p-b)*(p-c)));
}
else
{
printf("不构成三角形\n");
}
return 0;
}
注意,单精度或双精度类型不能直接用“==”比较
#include
#include
#define EP 1e-6
double triangle(double a, double b, double c)
{
double s = -1.0, p = 0;
if( !(a+b>c && a+c>b && b+c>a) )
puts("不构成三角形");
else
{
if(fabs(a-b)puts("等边三角形");
else if(fabs(a-b)>EP && fabs(a-c)>EP && fabs(b-c)>EP)
puts("不等边三角形");
else
puts("等腰三角形");
p = (a+b+c)/2.0;
s = sqrt( p*(p-a)*(p-b)*(p-c) );
}
return s;
}
int main()
{
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);
printf("\narea = %.2lf\n", triangle(a,b,c));
return 0;
}