zoukankan      html  css  js  c++  java
  • 0048-三角形的判断

    题目

    三角形的判断
    难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

    输入三个正整数 a、b 和 c,分别表示三条线段的长度,判断其是否能够构成三角形,如果能够构成三角形,寻找该三角形的特征,特征有:①等边三角形 ②锐角三角形 ③等腰锐角三角形 ④钝角三角形 ⑤等腰钝角三角形 ⑥直角三角形 ⑦等腰直角三角形。当然是等边三角形也是锐角三角形,也是等腰三角形,这里只要求输出最贴切的一个特征,也就是说是等边三角形,你就没必要输出等腰和锐角的特征了。

    输入
    一行,包括三个不超过 100000 的正整数,两两之间用一个空格分隔。
    输出
    如果能够构成三角形,就输出该三角形的特征,如果不能,就输出无法构成三角形。
    输入示例
    5 12 13
    输出示例
    直角三角形

    分析

        感觉到题目突然升级了有没有?没错!是升级了。不仅情况变多了,你需要了解的也变多了。

        注意事项:

            1.先从小到大排序,有利于判断特征。

            2.对于每种三角形的特征要比清楚。

            3.输出最贴切的特征。

        另外,为了有利于排序,在此介绍一个系统的交换函数,可以有效缩短代码长度,并且省去了对用来转换所需变量的定义。

        用法:

    swap(变量1,变量2);
    

        但最后想明白还是挺简单的。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,c;
    int main()
    {
    	scanf("%d%d%d",&a,&b,&c);
    	if(a>b) swap(a,b);//将边的长短从小到大排,有利于后期判断。
    	if(a>c) swap(a,c);
    	if(b>c) swap(b,c);
    	if(a+b<=c) printf("无法构成");//分别判断各种情况。
    	else if(a==b&&a==c&&b==c) printf("等边");//为了输出最贴切的名称,先把限制多的名称放在前面,并使用else if。
    	else if(a==b&&a*a+b*b==c*c) printf("等腰直角");
    	else if((a==b||b==c||a==c)&&a*a+b*b<c*c) printf("等腰钝角");//注意判断顺序,分别判断等腰和什么角。
    	else if((a==b||b==c||a==c)&&a*a+b*b>c*c) printf("等腰锐角");
    	else if(a*a+b*b==c*c) printf("直角");
    	else if(a*a+b*b<c*c) printf("钝角");
    	else if(a*a+b*b>c*c) printf("锐角");
    	printf("三角形");//统一输出很整洁,省长度~
    	return 0;
    }
    作者:18西斯光剑
    出处:https://www.cnblogs.com/DARTH-VADER-EMPIRE/
    Copyright ©2018-2020 18西斯光剑
    All Rights Reserved.
  • 相关阅读:
    Spark ListenerBus 和 MetricsSystem 体系分析
    Scala使用JUnit4单元测试
    Error:java: Compilation failed: internal java compiler error
    Spark 2.2 DataFrame的一些算子操作
    Spark SQL中UDF和UDAF
    Scala基础
    Spark Sql的UDF和UDAF函数
    Kafka笔记整理(二):Kafka Java API使用
    Kafka笔记整理(一)
    【口语英语】小学英语1-6年级听力必备知识汇总,建议收藏!
  • 原文地址:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9550200.html
Copyright © 2011-2022 走看看