⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 benq.cpp

📁 三角形面积的经典算法! 里面有多种方法求解!
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
void coordinate(double a[],double b[]);
class Cpoint
{
public:
	double x,y;
	friend double setx(int i);
	friend double sety(int i);
};
class Tria
{
private:
	Cpoint cd[4];
	friend void setdata(Tria &l,double o,double p,double q,double r,double s,double t);
	friend void area(Tria &info);
};
double a[4],b[4];
void main()
{
	int i;
	Tria info;
	for(i=1;i<=3;i++)
	{
	  a[i]=setx(i);
	  b[i]=sety(i);
	}
	coordinate(a,b);
	setdata(info,a[1],a[2],a[3],b[1],b[2],b[3]);
	area(info);
	
}
double setx(int i)
{
	double m;
	Cpoint cd[4];
	cout<<"请输入坐标的横坐标:";
	cin>>m;
	cd[i].x=m;
	i++;
	return m;
}
double sety(int i)
{
	double n;
	Cpoint cd[4];
	cout<<"请输入坐标的纵坐标:";
	cin>>n;
	cd[i].y=n;
	i++;
	cout<<endl;
	return n;
}
void coordinate(double a[],double b[])
{
	cout<<"("<<a[1]<<","<<b[1]<<")"<<endl
		<<"("<<a[2]<<","<<b[2]<<")"<<endl
		<<"("<<a[3]<<","<<b[3]<<")"<<endl;
}
void setdata(Tria &l,double o,double p,double q,double r,double s,double t)
{
	if((o==p)&&(r==s)||(o==q)&&(r==t)||(q==p)&&(t==s))
	{cout<<"有重点!!!无法构成三角形!!!!!"<<endl;}
	 else if((o/r==p/s)&&(o/r==q/t)&&(p/s==q/t))
	{cout<<"三个点在一条直线上!!!!!!!无法构成三角形!!!!!"<<endl;}
	else 
	{l.cd[1].x=o;l.cd[2].x=p;l.cd[3].x=q;l.cd[1].y=r;l.cd[2].y=s;l.cd[3].y=t;}
}
void area(Tria &info)
{
	double l1,l2,l3,p;
	l1=sqrt(pow((info.cd[1].x-info.cd[2].x),2)+pow((info.cd[1].y-info.cd[2].y),2));
	l2=sqrt(pow((info.cd[1].x-info.cd[3].x),2)+pow((info.cd[1].y-info.cd[3].y),2));
	l3=sqrt(pow((info.cd[3].x-info.cd[2].x),2)+pow((info.cd[3].y-info.cd[2].y),2));
	p=(l1+l2+l3)/2;
	cout<<"三角形的面积为:"<<sqrt(p*(p-l1)*(p-l2)*(p-l3))<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -