c语言:用海伦公式,求三角形的面积|练习题

2023-12-22 14:57:31

一、题目
用海伦公式,输入三边长度,计算三角形的面积

二、思路分析
1、设置判断函数,判断输入的三边是否能构成三角形
2、如果不能,开关值由0变为1
3、如果能,开关值为0

三、代码图片【带注释】

a4ce249fa4794ec2a6ebeef65a727f26.jpg

?

四、源代码【带注释】

#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、输入的三边不能构成三角形

653f336557a34e7cbcde8831efb177be.jpg
?

2、能构成三角形

?eaba2590476b48b3aed3e5b5ff235837.jpg

?

六、注意
此题的难点是,判断输入的三边能否构成三角形

关注我,每天分享编程知识

文章来源:https://blog.csdn.net/2301_76173427/article/details/135150776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。