C++ 怎么判断三角形 C++ 两边之和大于第三边代码【作业】

发布时间 - 2026-02-02 00:00:00    点击率:
三个正数a、b、c能构成三角形当且仅当a>0、b>0、c>0且a+b>c、a+c>b、b+c>a同时成立;需先判断正数,再用三个不等式联合判断,缺一不可。

怎么用 C++ 判断三边能否构成三角形

直接判断:三个正数 abc 能构成三角形,当且仅当同时满足:a + b > ca + c > bb + c > a。注意——这三条必须全为真,缺一不可。

常见错误是只写一个不等式(比如只判 a + b > c),或者用 && 连接时漏掉括号导致优先级出错。

实操建议:

  • 先确保输入的三边都是正数,负数或零直接拒绝(可加 if (a 检查)
  • 把三个不等式用括号包好再用 && 连接:(a + b > c) && (a + c > b) && (b + c > a)
  • 如果要区分等腰、等边、直角等类型,必须在确认是三角形之后再判断,否则逻辑错乱

C++ 输入三边后输出“是”或“否”的完整代码片段

作业常用结构:读入三个 doubleint,判断后输出结果。别忘了包含头文件和使用 std::cin / std::cout

示例(简洁可用):

#include 
using namespace std;

int main() { double a, b, c; cin >> a >> b >> c; if (a <= 0 || b <= 0 || c <= 0) { cout << "否" << endl; return 0; } if ((a + b > c) && (a + c > b) && (b + c > a)) { cout << "是" << endl;

} else { cout << "否" << endl; } return 0; }

注意:用 double 更稳妥,避免整数除法干扰;若题目明确要求整数输入,用 int 也可以,但比较时仍按整数运算处理(没问题)。

为什么不能只用两边之和大于第三边中的一个条件

因为三角形不等式是**对称且必要**的。比如 a=1, b=2, c=5,虽然 a + c > b(1+5>2)和 b + c > a(2+5>1)成立,但 a + b > c(1+2>5)不成立 → 实际无法围成三角形。

典型翻车场景:

  • 用户输入顺序随意(如把最长边输在第一个),只判 a + b > c 就会误判
  • max({a,b,c}) 提前找最大边,再判其余两边和是否大于它——可行,但多一步计算,不如直接三连判清晰
  • 有人试图用 abs(a - b) 等变形,容易引入浮点误差或符号问题,不推荐作业中用

边界情况和易忽略的坑

作业里容易被扣分的地方往往不在主逻辑,而在细节:

  • float 类型慎用:精度低,1e-6 级别的误差可能导致 a + b == c 时误判为“大于”,应尽量用 double
  • 输入非数字(如字母)会导致 cin 失败,abc 保持未初始化值——加 cin.fail() 检查更健壮,但基础作业通常不强制
  • 等号不能取:三角形定义要求**严格大于**,a + b == c 是退化三角形(三点共线),题目没特别说明就应判“否”
  • 如果后续要算面积(如海伦公式),必须先确保是有效三角形,否则 sqrt 参数可能为负

最常被忽略的是:没检查输入是否为正数,直接进不等式判断,导致负边长“意外”通过检验。


# ai  # c++  # ios  # stream  # 为什么  # Float  # if  # int  # double  # cin  # 角形  # 再用  # 海伦  # 的是  # 都是  # 就会  # 第一个  # 浮点  # 而在  # 三点 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中闭包概念与用法深入理解  如何在IIS7上新建站点并设置安全权限?  JavaScript如何实现继承_有哪些常用方法  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  EditPlus中的正则表达式实战(6)  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何使用模型观察者?(Observer代码示例)  如何快速查询域名建站关键信息?  Laravel怎么在Blade中安全地输出原始HTML内容  高防服务器:AI智能防御DDoS攻击与数据安全保障  javascript如何操作浏览器历史记录_怎样实现无刷新导航  再谈Python中的字符串与字符编码(推荐)  Laravel如何处理异常和错误?(Handler示例)  Laravel如何使用Gate和Policy进行授权?(权限控制)  如何解决hover在ie6中的兼容性问题  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Bootstrap整体框架之JavaScript插件架构  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel如何处理表单验证?(Requests代码示例)  如何在云主机快速搭建网站站点?  LinuxCD持续部署教程_自动发布与回滚机制  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在云服务器上快速搭建个人网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel如何实现API资源集合?(Resource Collection教程)  浅谈javascript alert和confirm的美化  Laravel如何实现事件和监听器?(Event & Listener实战)  网页设计与网站制作内容,怎样注册网站?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  昵图网官方站入口 昵图网素材图库官网入口  ,怎么在广州志愿者网站注册?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  重庆市网站制作公司,重庆招聘网站哪个好?  javascript基本数据类型及类型检测常用方法小结  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  音响网站制作视频教程,隆霸音响官方网站?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  EditPlus中的正则表达式实战(5)  南京网站制作费用,南京远驱官方网站?  免费网站制作appp,免费制作app哪个平台好?