根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型。

算法思想
首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积;否则不能构成三角形。

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

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

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

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

#include <stdio.h>

int main(void) {
    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));   //(海伦公式)(p=(a+b+c)/2)
        printf("三角形的面积是:%f\n", area);
        if (a == b && a == c) {
            printf("三角形是等边三角形\n");
        } else if (a == b || b == c || a == 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.897114
三角形是等边三角形

技术要点:

① 在本实训之前必须知道三角形的相关知识,比如,怎么判断输入的三边是否能构成三角形、三角形的面积计算方法等。

② 要注意逻辑运算符“&&”和“||”的使用,当需要同时满足多个条件时,使用“&&”运算符;而当只需满足多个条件中的一个时,使用“||”运算符。