满意答案
libeng66
.06.18
采纳率:51%等级:13
已帮助:4714人
由于计算精度的限制,比较两个浮点数是否相等是没有意义的,因为可能有误差。所以这里要求输入的边长必须是整数。
#include
void main()
{
unsigned int a, b, c;
printf("Enter the edge length of the triangle:\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
if( (a >= b+c)
|| (b >= c+a)
|| (c >= a+b) )
{
printf("This is not a triangle.\n");
return;
}
if( (a == b) && (b == c) )
{
printf("This is an equilateral triangle.\n");
return;
}
if( (a == b) || (b == c) || (c == a) )
{
printf("This is an isoceles triangle.\n");
return;
}
if ( ((a^2 + b^2) == (c^2))
|| ((b^2 + c^2) == (a^2))
|| ((c^2 + a^2) == (b^2)) )
{
printf("This is a right-angled triangle.\n");
return;
}
printf("This is an ordinary triangle.\n");
return;
}
11分享举报