猫史档案馆


C++一本通1034计算三角型面积【解答帖】

用户:FIRE_BYTEFIRE_BYTE查看:0 回复:1 评论:0 创建时间:2023-09-10T15:26:11


center_image

网址:center_image

 

由于我们并不知道三个点究竟是那三个,是上面的,左边的,还是右边的。所以我们并不能用小学学习的三角形面积计算公式,而是改用“海喵式”

center_image

因为海喵式只需要得知三条边的长度就行了,并不需要知道是哪三条边。

根据上一个帖子的内容,我们知道了求两个点之间的距离该如何求,这次这个题,恰巧就可以用上来求三条边,我们将上次的计算方法封装成函数

//设置传入4个双精度浮点数参数,和返回双精度浮点数。
double pointv(double x1,double y1,double x2,double y2)
{ 
	double a,b,c;
    //创建三个双精度浮点数类型的变量
	a=x1-x2;
	b=y1-y2;
    //求出a和b的值(勾股定理)
	c=sqrt(a*a+b*b);
    //求出长度
	return c;    //返回
}

接着,我们套用海喵式求出面积并输出即可

 

完整代码:

#include<bits/stdc++.h>
using namespace std;
double pointv(double x1,double y1,double x2,double y2){
	double a,b,c;
	a=x1-x2;
	b=y1-y2;
	c=sqrt(a*a+b*b);
	return c;
}
int main(){
	double x1,y1,x2,y2,x3,y3,a,b,c,p,s;    //创建变量
	cin>>x1>>y1>>x2>>y2>>x3>>y3;    //输入三个点的坐标
	a=pointv(x1,y1,x2,y2);    //求出a边的长度
	b=pointv(x2,y2,x3,y3);    //求出b边的长度
	c=pointv(x1,y1,x3,y3);    //求出c边的长度
	p=(a+b+c)/2;    //求出p
	s=sqrt(p*(p-a)*(p-b)*(p-c));    //使用海喵式求出面积
	cout<<fixed<<setprecision(2)<<s<<endl;    //保留2位小数输出
	return 0;    //程序结束
}


回复

上一页1 页 / 共 1下一页
FIRE_BYTEFIRE_BYTE

什么海喵式?

明明我写的是 海 伦 公 式

点赞0


评论