问题:根据输入的三角形的三条边判断三角形的类型,并输出他的面积和类型。
思路先行:
第一步:先判断输入的三条边能否构成三角形。(a+b>c && a+c>b && b+c>a)。
第二步:计算三角形的面积:根据秦九昭的公式:先计算三角形周长的一半,然后根据公式计算三角形的面积(area=sqrt(s*(s-a)*(s-b)*(s-c)));sart为求根号的数学函数。
第三步:判断三角形的类型:
等边三角形(a==b && a==c);
等腰三角形(a==b||b==c||b==c)
直角三角形(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
否则为普通三角形。
代码如下:
#include <stdio.h> //引用头文件
#include <math.h> //数学公式函数
main()
{
float a,b,c; //定义三角形的三条边
float s,area; //定义三角形的周长和面积
printf("请输入您想判断的三角形的三条边:");
scanf("%f%f%f",&a,&b,&c); //输入三条边
//第一步:
if(a+b>c && a+c>b && b+c>a) //判定三角形是否成立的条件
{ //第二步:
s=(a+b+c)/2; //计算三角形一半的周长
area=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"); //三边不能构成三角形
}
}
输出结果如下: