根据给定的三条边判断是否能构成三角形,并且输出它对应的面积和三角形类型

1 题目

功能:判断三角形的类型

描述:根据给定的三条边判断是否能构成三角形,并且输出它对应的面积和三角形类型

2 思路

从键盘中输入三条边后,只需判断这三条边中任意两边之和是否大于第三边

如果满足条件,可以构成三角形

再做进一步判断确定该三角形是什么三角形

若两边相等-则是等腰三角形;若三边相等,则是等边三角形;若三边满足勾股定理,则是直角三角形

另外,注意 && 和 || 的使用,以及 & 与 && 的区别和  | 与 || 的区别

3 代码

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

/**

功能:判断三角形的类型

描述:根据给定的三条边判断是否能构成三角形,并且输出它对应的面积和三角形类型

**/

intmain(intargc,charconst*argv[]) {

floata,b,c;

floats,area;

printf("输入三角形的三条边长(以空格分隔):");

scanf("%f %f %f",&a,&b,&c);// 输入三条边

printf("a = %f\n",a);

printf("b = %f\n",b);

printf("c = %f\n",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");

// 输出等边三角形

elseif(a==b||a==c||b==c)

// 判断三角形中是否有两边相等

printf("三条边组成的三角形是: 等腰三角形\n");

// 输出等腰三角形

elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))

// 判断是否有两边的平方和大于第三边的平方

printf("三条边组成的三角形是: 直角三角形\n");

// 输出直角三角形

else

printf("三条边组成的三角形是: 普通三角形");

// 普通三角形

}

else

// 如果两边之和小于第三边不能组成三角形

printf("该三条边不能构成三角形\n");

}

示例结果:

推荐阅读 更多精彩内容