【问题描述】
从键盘输入三角形的三条边长,判断能否构成三角形,如能构成三角形,则判断是哪一种类型:等腰三角形(等腰直角算作等腰)、等边三角形、直角三角形、任意三角形。输出要求如下:
不是三角形,则输出: It isn't triangle.
等腰三角形,则输出: isoceles triangle
等边三角形,则输出: equilateral triangle
直角三角形,则输出: right-angled triangle
任意三角形,则输出: arbitrary triangle
【输入形式】
从键盘输入三角形的三条边长(实数)。
【输出形式】
不是三角形,则输出: It isn't triangle.
等腰三角形,则输出: isoceles triangle
等边三角形,则输出: equilateral triangle
直角三角形,则输出: right-angled triangle
任意三角形,则输出: arbitrary triangle
【样例输入1】 1 2 3
【样例输出1】 It isn't triangle.
【样例输入2】 3.3 4.4 5.5
【样例输出2】 right-angled triangle
【样例输入3】 9.8995 14 9.8995
【样例输出3】 isoceles triangle
【评分标准】
结果完全正确得20分,共5个测试点。提交程序名为:p1009.c
#include<stdio.h>
int main()
{ int k=0;
double a,b,c;
scanf("%lf %lf %lf",&a,&b,&c);
int m=a*a;
int n=b*b;
int g=c*c;
if(a+b<=c||a+c<=b||b+c<=a)
printf("It isn't triangle.");
else
{
if(a==b&&b==c&&a==c)
{
k=2;
printf("equilateral triangle");
}
else if((a==b)||(b==c)||(a==c) )
{
k=1;
printf("isoceles triangle");
}
if((int) m==(int) n+(int) g || (int) n==(int) m+(int) g||(int) g==(int) m+(int) n)
{
k=1;
printf("right-angled triangle");
}
if(k==0) printf("arbitrary triangle");
}
return 0;
}