读入3个double型变量a,b,c的值,用if语句判断它们能否构成三角形,如果能构成三角形又是构成的何种三角形(等边三角形、等腰三角形、直角三角形、等腰直角三角形、一般三角形)
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c, t;
printf("请输入三角形的三边长:");
scanf_s("%lf,%lf,%lf", &a, &b, &c);
//把三角形三边数值进行替换,使c>b>a
if (a > b)
{
t = a;
a = b;
b = t;
}
if (a > c)
{
t = a;
a = c;
c = t;
}
if (b > c)
{
t = b;
b = c;
c = t;
}
if (a + b <= c)
printf("不能构成三角形");
else if (fabs(a*a + b*b - c*c) < 1e-3)//a*a + b*b - c*c=0?
if (fabs(a - b) < 1e-3)
printf("这是个等腰直角三角形");
else
printf("这是个直角三角形");
else if (fabs(a - b) < 1e-3 || fabs(b - c) < 1e-3)
if (fabs(a - c) < 1e-3)
printf("这是个等边三角形");
else
printf("这是个等腰三角形");
else
printf("这是个一般三角形");
printf("\n");
return 0;
}
运行结果: