易游港

 找回密码
 注册
搜索
热搜: 城市天际线
查看: 2535|回复: 0

判断三角形的类型

[复制链接]

64

主题

3

回帖

387

积分

管理员

积分
387
发表于 2021-12-16 15:43:26 | 显示全部楼层 |阅读模式
根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型。
算法思想
首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积;否则不能构成三角形。

① 从键盘输入三角形的三条边。

② 判断两边之和是否大于第三边。

③ 若条件成立则判断可构成三角形,计算其面积,并判断其类型;否则判断其不能构成三角形。

④ 在类型判断中首先判断其是否三边相等,条件成立则判断其为等边三角形;否则判断其是否有两边相等,条件成立则判断其为等腰三角形;否则判断其是否有两边的平方和等于第三边的平方,条件成立则判断其为直角三角形;否则判断其为普通三角形。


代码如下:
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c;
    float s,area;
    printf("请输入三角形的三条边:\n");
    scanf("%f,%f,%f",&a,&b,&c);
    if(a+b>c&&b+c>a&&a+c>b)
    {
        s=(a+b+c)/2;
        area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
        printf("三角形的面积是:%f\n" ,area);
        if(a==b&&a==c)
            printf("三角形是等边三角形\n");
        else if(a==b||a==c||b==c)
            printf("三角形是等腰三角形\n");
        else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
            printf("三角形是直角三角形\n");
        else
            printf("三角形是普通三角形\n");
    }
    else
        printf("不能构成三角形\n");
    return 0;
}
调试运行结果
输入为 3,3,3 时,对应的输出情况如下所示:
请输入三角形的三条边:
3,3,3
三角形的面积是:3.897114
三角形是等边三角形
输入为 3,4,5 时,对应的输出情况如下所示:
请输入三角形的三条边:
3,4,5
三角形的面积是:6.000000
三角形是直角三角形

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|易游港

GMT+8, 2025-3-13 07:30 , Processed in 0.101510 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2025 Tencent Cloud.

快速回复 返回顶部 返回列表