【if...else】三角形判断

给定三条边的长度,判断能否组成三角形,如果可以,判断三角形的形状。

输入要求

一组数据,每行三个实数,在(0,10]之间

输出要求

根据每行的数据判断,如果不能组成三角形,则输出“Not a triangle”;如果是“等腰三角形”,则输出“Isosceles triangle”;如果是“直角三角形”,则输出“Right triangle”;如果是“等腰直角三角形”,则输出“Isosceles Right triangle”;如果是“等边三角形”,则输出“Equilateral triangle”;否则,输出“General triangle”。

测试数据

输入示例

1.4142 1.4142 2
1.0000 4.0000 5.0000

输出示例

Isosceles Right triangle
Not a triangle

小贴士

比较浮点数是否相等,比较特殊,最好不要用 ==
比如浮点数a和b进行比较,写成if(a ==b)有时也许会出现你不期望出现的情况
墙裂建议写成if(fabs(a -b) <= 0.0001)

题目分析:

/*
首先我们可以先判断最特殊的三角形--“等边三角形”
然后我们可以先判断等腰类型的三角形(也可以先判断直角三角行,随自己喜欢),我们知道“等腰直角三角形”范围要比“等腰三角形”小,所以我们先判断“等腰直角三角形”再判断“等腰三角形”
之后我们判断“直角三角形”,再后判断“一般三角形”,
最后,如果以上条件都不符合了,那就不是三角形了。
*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     double a,b,c;
 5     scanf("%lf %lf %lf",&a,&b,&c);
 6     if(a == b && c == a)
 7     {
 8         /*等边三角形*/
 9         printf("Equilateral triangle\n");
10     }
11     else if(a == b || a == c || c == b)
12     {
13         /*先判断是否为等腰*/
14         if(a*a + b*b == c*c || a*a + c*c == b*b || c*c + b*b == a*a)//再判断是否有直角存在
15             printf("Isosceles Right triangle\n");
16         else    //不是等腰直角三角形的情况,那就是一般的等腰三角形了
17             printf("Isosceles triangle\n");
18     }
19     else if(a*a + b*b == c*c || a*a + c*c == b*b || c*c + b*b == a*a)
20     {
21         /*判断是否为直角三角形*/
22         printf("Right triangle\n");
23     }
24     else if(a + b > c && a + c > b && c + b > a)
25     {
26         /*判断是否为一般三角形 */
27         printf("General triangle\n");
28     }
29     else
30     {
31         /*不是三角形 */
32         printf("Not a triangle\n");
33     }
34     return 0;
35 } 
时间: 2024-10-09 04:57:33

【if...else】三角形判断的相关文章

分支-02. 三角形判断(15)

#include<iostream>#include<iomanip>#include<math.h>using namespace std;int main(){    double a[2],b[2],c[2];    double l,m,n,p,s;    cin>>a[0]>>a[1]>>b[0]>>b[1]>>c[0]>>c[1];    l=sqrt(pow(a[0]-b[0],2)+

*分支-02. 三角形判断

此题有错误,不能正确执行.希望有人给予提点. 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { 7 float x1,y1,x2,y2,x3,y3;//三个坐标 8 float l1,l2,l3;//三角形三边 9 float L,A;//周长,面积 10 float S;//海伦公式 11 12 scanf("%f %f %f %f %f %f&

PAT 三角形判断

1 /*给定平面上任意三个点的坐标(x1,y1).(x2,y2).(x3,y3),检验它们能否构成三角形. 2 3 输入格式: 4 5 输入在一行中顺序给出6个[-100, 100]范围内的数字,即3个点的坐标x1, y1, x2, y2, x3, y3. 6 7 输出格式: 8 9 若这3个点不能构成三角形,则在一行中输出“Impossible”:若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位. 10 输入样例1:4 5 6 9 7 8

浙大版《C语言程序设计(第3版)》题目集 习题3-5 三角形判断 (15 分)

习题3-5 三角形判断 (15 分) 给定平面上任意三个点的坐标(x1,y1).(x2,y2).(x3,y3),检验它们能否构成三角形.1??,y?1??).(x?2??,y?2??).(x?3??,y?3??),检验它们能否构成三角形 输入格式: 输入在一行中顺序给出六个[?100,100]范围内的数字,即三个点的坐标x1.y1.x2.y2.x3.y3.(.x1,y1).(x2,y2).(x3,y3)1??.y?1??.x?2??.y?2??.x?3??.y?3??. 输出格式: 若这3个点不

codeforces - 766B【三角形判断】

题解By: Jstyle知识点一    要想三边满足构成三角形的条件有两个    1.任意两边之和大于第三边.    2.任意两边之差小于第三边.知识点二    假设三边为 a, b, c 且满足 a <= b <= c;那么只需要满足 a+b > c即可;    证明:    任意两边之和大于第三边:    因为 a <= b <= c, 则 a+c > b && b+c > a 是显然的;    任意两边只差小于第三边:    因为: a+b

作业八—三角形判断单元测试体会

  测试用例 (含有“()”号的为错误预言) 序号 测试输入(三条边:a,b,c) 测试预言 (Oracle:Illegal,Regular,Scalene,Isoceles) 4  (0.6.5)  Illegal 5  (4,2,3)  Scalence 6  (4,4,4)  Regular 7  (-2,-2,-2)  Illegal 8  (3,3,5)  Isoceles 9  (-2,-2,-2)  (Regular) 10  (3,3,6)  (Isoceles) 11  (1,

1-4-16:三角形判断

描述 给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形. 输入输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开.输出如果能构成三角形,则输出“yes” ,否则输出“no”.样例输入 3 4 5 样例输出 yes 来源 #include<stdio.h> int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if((a+b)>c &&

三角形判断和计算面积(C++实现)

#include <iostream> #include <math.h> using namespace std; void main() { int    b,c,a; float s,area; cout <<"请输入三角形三条边的大小:"; cin>>a>>b>>c; if ((a+b>c)&&(a+c>b )&&(b+c>a)) { s=(a+b+c)/2

作业八——单元测试练习(个人练习)

必做一: 针对附录1给出的三角形判断Java 代码,应用等价类划分法设计测试用例,用表格形式列出设计的测试用例: 测试用例如下:(红色字体为错误预言) 序号 测试输入:三条边 测试预言:[Oracle:Illegal(非三角形),Scalene(一般三角形), Isoceles(等腰三角形),Regular(等边三角形)] 1 (5,5,5) Regular 2 (-5,-5,-5) Regular 3 (1,4,5) Illegal 4 (2,3,5) Illegal 5 (3,4,5) Sc