C语言 输入三角形三边a,b,c,判断是否能构成三角形 ,若能并判断是等腰,等边,直角还是一般三角形

如题

#include <stdio.h>
void main(void)
{
int a,b,c;
printf("请输入三个边长:\n");
scanf("%d %d %d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
printf("可以构成一个直角三角形。\n");
else if(a==b && a==c)
printf("可以构成一个等边三角形。\n");
else if(a==b||b==c||a==c)
printf("可以构成一个等腰三角形。\n");
else
printf("可以构成一个等腰三角形。\n");
else
printf("不能构成三角形。\n");

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-12
#include<stdio.h>
#include<math.h>
#define LIMIT 1e-1
int main()
{
float a,b,c;

printf("");
scanf("%f,%f,%f",a,b,c);
if ((a+b)>c && (b+c)>a && (a+c)>b)
{
if ( fabs(a-b)<=LIMIT || fabs(b-c)<=LIMIT || fabs(c-a)<=LIMIT )
{
if (fabs(a*a+b*b-c*c) <= LIMIT || fabs(a*a+c*c-b*b) <= LIMIT || fabs(c*c+b*b-a*a) <= LIMIT )
{
printf("Iscsceles right triangle!");
}
else
{
printf("Iscsceles triangle!");
}
}
else if (fabs(a*a+b*b-c*c)<= LIMIT || fabs(a*a+c*c-b*b) <= LIMIT || fabs(c*c+b*b-a*a) <= LIMIT)
{
printf("Right angled triangle");
}
else
{
printf("Triangle!");
}

}
else
{
printf("Error!");
}
return 0;
}
相似回答