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");
}
示例结果: