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

1 题目

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

2 思路

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

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

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

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

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

3 代码

#include  
#include 
#include 

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

int main(int argc, char const *argv[]) { 
	float a, b, c;
	float s, 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");
			// 输出等边三角形
		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("三条边组成的三角形是: 普通三角形");
			// 普通三角形
	}
	else
		// 如果两边之和小于第三边不能组成三角形
		printf("该三条边不能构成三角形\n");
}

示例结果:

$ gcc ex057.c -o demo
$ ./demo
输入三角形的三条边长(以空格分隔):3 4 5
a = 3.000000
b = 4.000000
c = 5.000000
面积是:6.000000
三条边组成的三角形是: 直角三角形

你可能感兴趣的:(pdf,python)