一、题目
用海伦公式,输入三边长度,计算三角形的面积
二、思路分析
1、设置判断函数,判断输入的三边是否能构成三角形
2、如果不能,开关值由0变为1
3、如果能,开关值为0
三、代码图片【带注释】
?
四、源代码【带注释】
#include <stdio.h>
#include <math.h>
int kaiGuan=0;
//设置一个开关,
//判断函数中,不为三角形开关值变为1
//思路分析:
//设置判断函数,判断输入的三边是否能构成三角形
//如果不能,开关值由0变为1
//如果能,开关值为0
int panDuan(int a,int b,int c)
{
? ? if(((a+b)<=c)||((a+c)<=b)||((c+b)<=a))
? ? {
? ? ? ? printf("不是三角形,请重新输入\n");
? ? ? ? kaiGuan=1;
? ? }
? ? else
? ? {
? ? ? ? kaiGuan=0;
? ? }
}
//输入三角形三边,如果不能构成三角形,从新输入
//如能构成三角形,调用三角形面积函数,求三角形面积
int main()
{
? ? int a,b,c;
cc:
? ? printf("请输入三角形三边的值:\n");
? ? scanf("%d",&a);
? ? scanf("%d",&b);
? ? scanf("%d",&c);
? ? panDuan(a,b,c);
? ? if(kaiGuan==1)
? ? {
? ? ? ? goto cc;
? ? }
? ? triangleArea(a,b,c);
}
//利用海伦公式,求三角形面积
triangleArea(int a,int b,int c)
{
? ? float l,s;
//重点:要把(a+b+c)强制类型转换,否则结果有误
? ? l=(float)(a+b+c)/2;
? ? s=sqrt(l*(l-a)*(l-b)*(l-c));
? ? printf("三角形的面积是:%.4f",s);
}
五、运行结果
1、输入的三边不能构成三角形
?
2、能构成三角形
?
?
六、注意
此题的难点是,判断输入的三边能否构成三角形
关注我,每天分享编程知识