C语言学习笔记202606008- 三角形判断(3种方法)

C语言学习笔记202606008- 三角形判断(3种方法)

一、知识点简介

输入三个整数边长,判断是否可以构成三角形;若可以,进一步判断是:等边三角形、等腰三角形、普通三角形。

采用模块化编程思想:单独封装判断三角形函数,主函数只负责输入输出、业务判断,代码可读性高、复用性强,是大一C语言必考写法。

二、三角形判断数学规则

1. 基础前提

三角形所有边长必须 大于0,0和负数无法构成边长。

2. 核心判定条件(任意满足)

任意两边之和大于第三边:

  • a + b > c

  • a + c > b

  • b + c > a

3. 三角形分类规则

  • 等边三角形 :三边全部相等(ab && bc)

  • 等腰三角形:任意两边相等(排除等边)

  • 普通三角形:三边全部不相等

三、完整可运行代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

// 函数:判断是否能构成三角形
// 返回1:可以构成  返回0:无法构成
int isTriangle(int a, int b, int c)
{
    // 边长必须全部大于0,且满足三边关系
    return (a > 0 && b > 0 && c > 0) 
        && (a + b > c && a + c > b && b + c > a);
}

int main()
{
    int a, b, c;
    printf("请输入三个整数边长:");
    scanf("%d %d %d", &a, &b, &c);

    // 调用函数判断
    if (isTriangle(a, b, c))
    {
        printf("可以构成三角形\n");
        
        // 判断三角形类型
        if (a == b && b == c)
        {
            printf("三角形类型:等边三角形\n");
        }
        else if (a == b || a == c || b == c)
        {
            printf("三角形类型:等腰三角形\n");
        }
        else
        {
            printf("三角形类型:普通三角形\n");
        }
    }
    else
    {
        printf("无法构成三角形\n");
    }

    return 0;
}

四、拓展写法:排序简化判断

核心原理:只需判断 最小两边之和 > 最大边,无需判断三个条件,代码更高效

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int a, b, c, temp;
    printf("请输入三个整数边长:");
    scanf("%d %d %d", &a, &b, &c);

    // 冒泡排序:让a<=b<=c
    if (a > b) { temp = a; a = b; b = temp; }
    if (a > c) { temp = a; a = c; c = temp; }
    if (b > c) { temp = b; b = c; c = temp; }

    // 只需判断最小两边之和大于最大边
    if (a > 0 && a + b > c)
    {
        if (a == b && b == c)
            printf("等边三角形\n");
        else if (a == b || b == c)
            printf("等腰三角形\n");
        else
            printf("普通三角形\n");
    }
    else
    {
        printf("无法构成三角形\n");
    }
    return 0;
}

五、测试案例

输入数据 运行结果
3 4 5 普通三角形
5 5 5 等边三角形
4 4 6 等腰三角形
1 2 3 无法构成三角形
0 5 6 无法构成三角形

六、学习总结

  • 使用自定义函数实现功能封装,符合模块化编程思想,代码复用性更高;

  • 三角形核心判定:边长为正 + 任意两边之和大于第三边;

  • 进阶优化:排序后仅判断一次条件,简化代码、提升效率;

  • 分层判断:先判断能否构成三角形,再细分三角形类型,逻辑清晰不混乱。

相关推荐
ouynagda2 分钟前
嵌入式Linux i.MX6ULL系统移植学习笔记
linux·笔记·学习
yi0118 分钟前
DAY22: LeetCode 733:图像渲染——从二维网格开始理解 DFS 和 BFS
数据结构·笔记·python·算法·leetcode·深度优先·宽度优先
白猫不黑16 分钟前
AI自动化漏洞挖掘从入门到进阶超详细学习路线
人工智能·学习·web安全·网络安全·信息安全·渗透测试·自动化
~kiss~36 分钟前
Chroma 的边际相关性检索 - Maximal Marginal Relevance,检索的多样性
学习
今夜有雨.44 分钟前
图像运算、掩膜/ROI 与绘制交互
c语言·数据结构·c++·qt·算法·计算机视觉
sbjdhjd1 小时前
智能体开始“动手”之后:OpenAI越权事件、Anthropic算力资本化与开放权重模型竞逐 | AI与SI行业日报整理(9月29日—10月6日)
大数据·人工智能·经验分享·笔记·ai·chatgpt·开源
上位机妹子1 小时前
从零理解 EF Core:用 Minimal API 给「工作项看板」建模(小白笔记)
笔记
扶风ff1 小时前
练题簿在线免费刷题:题目导入、章节管理、Excel 与 Word 导出,让题库更好用
学习·小程序·word·excel
JWASX1 小时前
Java 转 go 学习 - GRPC(3)
学习·golang
知识分享小能手1 小时前
C学习教程,从入门到精通,C语言概述 —— 知识点详解(1)
c语言·开发语言·学习