• 【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
    ");
    10     }    
    11     else if(a == b || a == c || c == b) 
    12     {
    13         /*先判断是否为等腰*/
    14         if(a*a + b*b - c*c  < 0.000001|| a*a + c*c - b*b < 0.000001 || c*c + b*b - a*a < 0.00001)//再判断是否有直角存在
    15             printf("Isosceles Right triangle
    ");
    16         else    //不是等腰直角三角形的情况,那就是一般的等腰三角形了 
    17             printf("Isosceles triangle
    ");    
    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
    ");
    23     }
    24     else if(a + b > c && a + c > b && c + b > a) 
    25     {
    26         /*判断是否为一般三角形 */
    27         printf("General triangle
    ");
    28     }
    29     else                                        
    30     {
    31         /*不是三角形 */
    32         printf("Not a triangle
    ");
    33     }    
    34     return 0;
    35 } 
     
  • 相关阅读:
    yii2 页面渲染方法解析
    JavaScript 编码小技巧
    Ansible Playbooks入门介绍
    CentOS 7 源码安装Ansible 2.x
    GitLab 安装与入门
    SpringBoot 悲观锁 与 乐观锁
    SpringBoot 事务隔离性和传播性
    SpringBoot 定义通过字段验证
    SpringBoot 密码MD5加密
    SpringBoot MockMVC
  • 原文地址:https://www.cnblogs.com/jj81/p/7574336.html
Copyright © 2020-2023  润新知