三角形判断
2014-05-14 22:38
197 查看
描述
给定三条边的长度,判断能否组成三角形,如果可以,判断三角形的形状。
输入
一组数据,每行三个实数,在(0,10]之间,精确到小数点后第四位。最后以0 0 0表示结束。
输出
根据每行的数据判断,如果不能组成三角形,则输出“Not a triangle”;如果是“等腰三角形”,则输出“Isosceles triangle”;如果是“直角三角形”,则输出“Right triangle”;如果是“等腰直角三角形”,则输出“Isosceles right triangle”;如果是“等边三角形”,则输出“Equilateral triangle”;否则,输出“General triangle”。最后输出一行“End”。
样例输入
1.4142 1.4142 2
1.0000 4.0000 5.0000
0 0 0
样例输出
Isosceles right triangle
Not a triangle
End
提示
题目来源
GUOJ
abs针对整数
fabs针对浮点数
精度要求
scanf输入输出格式
给定三条边的长度,判断能否组成三角形,如果可以,判断三角形的形状。
输入
一组数据,每行三个实数,在(0,10]之间,精确到小数点后第四位。最后以0 0 0表示结束。
输出
根据每行的数据判断,如果不能组成三角形,则输出“Not a triangle”;如果是“等腰三角形”,则输出“Isosceles triangle”;如果是“直角三角形”,则输出“Right triangle”;如果是“等腰直角三角形”,则输出“Isosceles right triangle”;如果是“等边三角形”,则输出“Equilateral triangle”;否则,输出“General triangle”。最后输出一行“End”。
样例输入
1.4142 1.4142 2
1.0000 4.0000 5.0000
0 0 0
样例输出
Isosceles right triangle
Not a triangle
End
提示
题目来源
GUOJ
//1013 #include "stdio.h" #include "math.h" int IsTri(double a,double b,double c) { if(a+b-c>1e-3&&a+c-b>1e-3&&b+c-a>1e-3) { return 1; } else { return 0; } }//是否是三角形 int Equal2(double a,double b,double c) { if((fabs(a-b)<1e-3&&fabs(a-c)>1e-3)||(fabs(a-c)<1e-3&&fabs(a-b)>1e-3)||(fabs(b-c)<1e-3&&fabs(a-c)>1e-3)) { return 1; } else { return 0; } }//是否有两边相等 int Right(double a ,double b,double c) { double aa,bb,cc; aa=a*a; bb=b*b; cc=c*c; if(fabs(aa+bb-cc)<1e-3) { return 1; } else { return 0; } }//是否满足勾股定理 int Equal3(double a,double b,double c) { if(fabs(a-b)<1e-3&&fabs(a-c)<1e-3) { return 1; } else { return 0; } }//是否三边相等 int main() { double a,b,c; double temp; while(1) { scanf("%lf %lf %lf",&a,&b,&c); if(0==a) { break; } if(a>b) { temp=a; a=b; b=temp; } if(b>c) { temp=b; b=c; c=temp; } if(IsTri(a,b,c)) { if(Equal2(a,b,c)&&!Equal3(a,b,c)&&!Right(a,b,c)) { printf("Isosceles triangle\n"); } else if(!Equal2(a,b,c)&&Right(a,b,c)) { printf("Right triangle\n"); } else if(Equal2(a,b,c)&&!Equal3(a,b,c)&&Right(a,b,c)) { printf("Isosceles right triangle\n"); } else if(Equal3(a,b,c)) { printf("Equilateral triangle\n"); } else { printf("General triangle\n"); } } else { printf("Not a triangle\n"); } } printf("End\n"); return 0; }
abs针对整数
fabs针对浮点数
精度要求
scanf输入输出格式
相关文章推荐
- 九度王道考研机试 2009-2哈工大1048:判断三角形类型
- 判断一个点在三角形之内
- 判断点是否在三角形内部
- 判断三角形类型 018
- 如何判断一个点是否在三角形内部
- 16:三角形判断
- 算法竞赛入门经典ch_1_practice6判断三角形(c++)
- JS判断鼠标是否在三角形内
- 判断点在三角形内外
- 判断一个点是否在三角形内(面积法,三个点求三角形面积)
- 第11周 oj 判断三角形
- 判断三角形C#
- oj第十一周训练——判断三角形
- JAVA之1.封装一类三角形对象Triangle,该类对象具有三条边的属性,具有初始化三角形的功能、修改边长的功能、判断三条边能否构成三角形的功能、求周长的功能、求面积的功能。
- 分支-02. 三角形判断
- c语言:任给三条边长,判断能否构成三角形,如果能,求出其面积和周长
- 三角形的判断
- 二维平面上判断点是否在三角形内
- 三角形的判断
- Codeforces Round #308 (Div. 2) D. Vanya and Triangles (判断三角形数量)