题目描述

给出三条线段 a,b,c 的长度,均是不大于 10000 的整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?

  • 如果三条线段不能组成一个三角形,输出Not triangle
  • 如果是直角三角形,输出Right triangle
  • 如果是锐角三角形,输出Acute triangle
  • 如果是钝角三角形,输出Obtuse triangle
  • 如果是等腰三角形,输出Isosceles triangle
  • 如果是等边三角形,输出Equilateral triangle

如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。

本题只需用判断三角形三边的关系

设三角形三边长为a,b,c.若

1.有任意一边为0,或两边之和小于第三边,则构不成三角形。

2.任意两边的平方和大于第三边,为锐角三角形。

3.任意两边的平方和等于第三边,为直角三角形。

4.任意两边的平方和小于第三边,为钝角三角形。

5.三边相等的三角形,为锐角三角形,等边三角形,等腰三角形。

6.任意两边相等的三角形为等腰三角形(所以需要单独判断)。

注 由于是任意的两边,所以三边都要进行比较。最简单的方法就是规定一条边为长边,逐个讨论。也可以先对a,b,c进行比较,选出长边。

这里是代码

#include<stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);if(a==0||b==0||c==0||a+b<=c ||b+c<=a || a+c<=b)//构不成三角形 {printf("Not triangle");}else{//以a为长边 if(a>b && a>c && b*b+c*c>a*a)//三边的关系 ,两边之和大于第三边 {printf("Acute triangle\n");if(b==c){printf("Isosceles triangle");}}if(a>b && a>c && b*b+c*c==a*a)//两边之和等于第三边 {printf("Right triangle\n");if(b==c){printf("Isosceles triangle");}}if(a>b && a>c && b*b+c*c<a*a)//两边之和小于第三边 {printf("Obtuse triangle\n");if(b==c){printf("Isosceles triangle");}}//以b为长边 if(b>a && b>c && a*a+c*c>b*b){printf("Acute triangle\n");if(a==c){printf("Isosceles triangle");}}if(b>a && b>c && a*a+c*c==b*b){printf("Right triangle\n");if(a==c){printf("Isosceles triangle");}}if(b>a && b>c && a*a+c*c<b*b){printf("Obtuse triangle\n");if(a==c){printf("Isosceles triangle");}}//以c为长边 if(c>b && c>a&& b*b+a*a>c*c){printf("Acute triangle\n");if(b==a){printf("Isosceles triangle");}}if(c>b && c>a && b*b+a*a==c*c){printf("Right triangle\n");if(b==a){printf("Isosceles triangle");}}if(c>b && c>a && b*b+a*a<c*c){printf("Obtuse triangle\n");if(b==a){printf("Isosceles triangle");}}if(a==b&&b==c)//三边相等的情况 {printf("Acute triangle\n");    printf("Isosceles triangle\n");printf("Equilateral triangle");}}return 0;
}

洛谷---三角形的分类C语言详解相关推荐

  1. Drools 规则语言详解(上)

    http://www.blogjava.net/guangnian0412/archive/2006/06/09/51574.html http://www.blogjava.net/guangnia ...

  2. 克鲁斯卡尔算法c语言,Kruskal算法(一)之 C语言详解

    最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和 ...

  3. c++指针详解_c语言详解sizeof

    一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等. 它并不是函数. sizeof操作符以字节形式给出了其操作数的存储大小. 操作数可以是一个表达式或括在括 ...

  4. 排座系统c语言,2008noip排座位C语言详解.doc

    2008noip排座位C语言详解 2008noip排座位C语言详解 2.排座椅 (seat.pas/c/cpp)D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列 的同学的位置是 ...

  5. 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解

    本章介绍邻接矩阵有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...

  6. 邻接矩阵用c语言,邻接矩阵无向图(一)之 C语言详解

    本章介绍邻接矩阵无向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...

  7. IP地址分类及范围详解

    IP地址分为公网IP地址(合法IP地址)和私有IP地址 公网IP地址主要应用于Internet上的主机访问,而私有IP地址应用于局域网中计算机的相互通信. IP地址的表示形式:分为二进制表示和点分十进 ...

  8. 如何用c语言编写stm32的程序吗,STM32入门C语言详解

    <STM32入门C语言详解>由会员分享,可在线阅读,更多相关<STM32入门C语言详解(6页珍藏版)>请在人人文库网上搜索. 1.最新 料推荐阅读 flash : 芯片内部存储 ...

  9. functional java_java中functional interface的分类和使用详解

    java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function. 在java 8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lambda ...

  10. 顺序栈基本操作(入栈和出栈)C语言详解

    #include <stdio.h> #include <stdlib.h> /*顺序栈基本操作(入栈和出栈)C语言详解栈的具体实现(1)顺序栈(2)链栈栈的应用(1)回退 ( ...

最新文章

  1. C语言实现十大经典排序算法
  2. python培训好学吗-Python爬虫培训好学吗?
  3. ImportError: cannot import name ‘image‘ from ‘PIL‘ (C:\ProgramData\Anaconda3\lib\site-packages\PIL\_
  4. 使用 cglib_CGLib 动态代理 原理解析
  5. 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
  6. python基础(part5)--容器类型之字符串
  7. python将元祖写入txt文档_python元祖和文件用法举例
  8. 微信小程序登录页php后台,微信小程序:微信登陆(ThinkPHP作后台)
  9. 力控批量添加变量_力控变量.ppt
  10. Discord是什么
  11. 英语单词辨异 —— 容易理解错的单词
  12. Themida/WinLicense V1.8.2.0 +脱壳 FOR PcShare远程控制会员版本20070826
  13. 用C语言打印九九乘法表
  14. TCP长连接和短连接区别
  15. 传统备份 VS 云备份?
  16. 女友闹别扭不用担心,这个撩妹黑科技轻松哄好
  17. computer-06 其它
  18. shell编程之sort、uniq、tr
  19. 微信小程序海报生成图片合成工具类
  20. Eclipse 导入工程乱码的问题之解决方法

热门文章

  1. 接入支付宝支付SDK
  2. leetcode402. 移掉 K 位数字
  3. 软件开发之大忌:想当然
  4. android8 保卫萝卜,保卫萝卜挑战8攻略图解,学会这些,轻松过第八关
  5. Qt基于networkmanager嵌入式linux的wifi网络连接
  6. kindle paper white部分优化
  7. 关于NS3中各个WifiRemoteStationManager(二)
  8. Intellij IDEA 提示cannot find declaration to go to 解决方法
  9. 前端部署的灵魂拷问,你能回答出几个?【部署必看篇】
  10. POI2011 同谋者 Conspiracy