例:根据输入的三角形的三边判断三角形的类型,并输出它的面积和类型。
注意:
①这个问题存在越界的可能,输出三角形面积和类型的前提是能构成三角形,首先应判断输入的三条边能否构成三角形
即判断任意两边之和是否大于第三边
②知道三角形的三边求三角形的面积用海伦公式
即s=(a+b+c)/2;area=(float)sqrt(s*(s-a)* (s-b)*(s-c)) 注意强制类型转换
这里调用库函数double sqrt(double x)来计算x的算术平方根(x≥0)
③三角形类型的划分:等边三角形、等腰三角形、直角三角形、普通三角形
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
float s,area;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)/*判断输入的三条边能否构成三角形*/
{
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));/*用海伦公式计算三角形的面积*/
printf("该三角形的面积是%f\n",area);
if(a==b&&b==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");
return 0;
}