c语言-三角形判断

描述

KiKi想知道,已经给出的三条边 aa、bb、cc 能否构成一个++非退化三角形++ ,如果能构成,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

【名词解释】
++非退化三角形++:三条边长均大于 00 且任意两边之和均大于第三边的三角形。

输入描述:

在一行上输入三个整数 a,b,c(0<a,b,c<10)a,b,c(0<a,b,c<10),表示三角形的三条边。

输出描述:

在一行上输出一个字符串,表示三角形的类型,具体地:

∙ ∙如果三角形是等边三角形,则输出 Equilateral triangle!Equilateral triangle!;

∙ ∙如果三角形是等腰三角形,则输出 Isosceles triangle!Isosceles triangle!;

∙ ∙如果三角形是普通三角形,则输出 Ordinary triangle!Ordinary triangle!;

∙ ∙如果不能构成非退化三角形,则输出 Not a triangle!Not a triangle!。

代码:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
        int a, b, c;
        while (scanf("%d %d %d", &a, &b, &c) != EOF) { // 注意 while 处理多个 case

            if ((a == b && b == c))
            {
                printf("Equilateral triangle!");
            }
       
            else if ((a + b > c && a + c > b &&b + c > a) && (a == c || b == c || a == b))
            {
                printf("Isosceles triangle!");
            }

            else if (a + b > c && a + c > b && b + c > a)

            {
                printf("Ordinary triangle!");
            }
            else
            {
                printf("Not a triangle!");
            }

        }
        return 0;
}

分析:

  • 先判断等边三角形(a == b && b == c):三边相等是最特殊的三角形类型,优先判断可避免被等腰三角形的「两边相等」条件误判;
  • 再判断等腰三角形:通过「三角形合法性 + 两边相等」筛选,此时已排除等边三角形,仅匹配「两边相等、第三边不等」的纯等腰三角形;
  • 接着判断普通三角形:仅保留「合法但非等边、非等腰」的三角形;
  • 最后兜底非三角形:所有不满足上述条件的情况统一归类,无遗漏场景。
相关推荐
十五年专注C++开发22 分钟前
Oat++: 一个轻量级、高性能、零依赖的 C++ Web 框架
开发语言·c++·web服务·oatpp
陈天伟教授23 分钟前
心电心音同步分析-案例:原型设计一
开发语言·人工智能·python·语言模型·架构
Ar-Sr-Na26 分钟前
STM32现代化AI开发指南-VSCode环境配置(macOS)
c语言·人工智能·vscode·stm32·嵌入式硬件·硬件工程
Allen_LVyingbo26 分钟前
量子计算Dirac Notation基本教学—从零基础到读懂量子信息论文(下)
开发语言·人工智能·python·数学建模·量子计算
wjs202434 分钟前
Ruby File 类和方法
开发语言
xyq202437 分钟前
API 类别 - UI 核心
开发语言
Dxy12393102161 小时前
Python路径算法简介
开发语言·python·算法
文慧的科技江湖1 小时前
光储充协同的终极闭环:用SpringCloud微服务打造“发-储-充-用“智能能源网络 - 慧知开源充电桩管理平台
java·开发语言·spring cloud·微服务·能源·充电桩开源平台·慧知重卡开源充电桩平台
東雪木1 小时前
Java学习——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)的用法与底层实现
java·开发语言·学习·java面试
昵称暂无11 小时前
通过 C# 复制 Word 文档、指定段落、指定节
开发语言·c#·word