C语言三角形类型判断

简介: C语言三角形类型判断


#include <stdio.h>
#include <windows.h>
#include <math.h>
int main()
{
    int a, b, c;           //三条边长
    float area, perimeter; //面积 ,周长
    int t;
    system("title Triangle Judgment Procedure");
    printf("input three nuber:");
    scanf("%d%d%d", &a, &b, &c);
    getchar();
    //排序 ps:因为后面的三角形类型判断会用
    if (a < b)
    {
        t = a;
        a = b;
        b = t;
    }
    if (a < c)
    {
        t = a;
        a = c;
        c = t;
    }
    if (b < c)
    {
        t = b;
        b = c;
        c = t;
    }
    //  printf("%d%d%d",a,b,c);
    perimeter = a + b + c;
    float per = perimeter / 2;
    area = sqrt(per * (per - a) * (per - b) * (per - c));
    if (a + b > c || a + c > b || b + c > a)
    {
        //输出周长以及面积
        printf("Circumference of triangle:%.2f\n", perimeter);
        printf("Triangular area:%.2f\n", area);
        //判断是什么三角形
        if ((pow(b, 2) + pow(c, 2)) > pow(a, 2))
            printf("Triangle type:锐角\n");
        else if ((pow(b, 2) + pow(c, 2)) == pow(a, 2))
            printf("Triangle type:直角\n");
        else if ((pow(b, 2) + pow(c, 2)) < pow(a, 2))
            printf("Triangle type:钝角\n");
        //下面是判断是什么特殊三角形
        if ((a == b && a != c) || (c == b && c != a) || (a == c && a != b))
            printf("等腰三角形\n");
        else if (a == b && a == c)
            printf("等边三角形\n");
        else
            printf("特殊三角形:ERROR!");
    }
    else
        printf("ERROR!");
    getchar();
    return 0;
}

原本的问题是:输入三条边的长度,判断是否构成三角形,如果构成输出周长以及面积。

我写的程序多出一部分是判断是什么类型的三角形。


相关文章
|
6月前
|
存储 数据处理 C语言
C语言类型的变量
C语言类型的变量
59 1
|
6月前
|
存储 编译器 C语言
【C语言】判断字符类型的三种方法
【C语言】判断字符类型的三种方法
454 0
|
6月前
|
存储 C语言
C语言变量类型
C语言变量类型
|
1月前
|
存储 编译器 C语言
C语言:数组名作为类型、作为地址、对数组名取地址的区别
在C语言中,数组名可以作为类型、地址和取地址使用。数组名本身代表数组的首地址,作为地址时可以直接使用;作为类型时,用于声明指针或函数参数;取地址时,使用取地址符 (&),得到的是整个数组的地址,类型为指向该类型的指针。
|
1月前
|
C语言 C++
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
|
2月前
|
存储 缓存 程序员
c语言的存储类型-存储类
本文详细介绍了C语言中的存储类型及其分类,包括基本类型(如整型、浮点型)和复合类型(如数组、结构体)。重点讲解了不同存储类别(`auto`、`static`、`register`、`extern`、`typedef`、`volatile`、`const`)的特点及应用场景,并展示了C11/C99引入的新关键字(如`_Alignas`、`_Atomic`等)。通过示例代码解释了每个存储类别的具体用法,帮助读者更好地理解和运用这些概念。
|
3月前
|
存储 自然语言处理 编译器
C语言中的char类型
C语言中的char类型
244 1
|
3月前
|
算法 编译器 API
C语言中的longdouble类型
C语言中的longdouble类型
|
5月前
|
存储 编译器 C语言
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)一
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)一
58 2
|
5月前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
49 0