题目分析:
在平面直角坐标系中标出三个点的坐标,由图可知,我们可以用数学中的割补法.三角形的面积等于矩形面积减去三个小三角形的面积.
#include<iostream>
using namespace std;
//定义一个结构体,存放点变量
struct point{
double x;
double y;
};
//计算面积的函数
void area(struct point p[])
{
double o;//矩形面积
o = (p[1].x-p[0].x)*(p[2].y-p[0].y);
double s_a,s_b,s_c;//三个小三角形面积
double ans;
s_a = ((p[1].x - p[0].x)*(p[1].y - p[0].y))/2;
s_b = ((p[1].x - p[2].x)*(p[2].y - p[1].y))/2;
s_c = ((p[2].x - p[0].x)*(p[2].y - p[0].y))/2;
ans = o - s_a - s_b - s_c;
cout << ans << endl;
}
int main()
{
struct point p[3];
p[0].x = 2.3;
p[0].y = 2.5;
p[1].x = 6.4;
p[1].y = 3.1;
p[2].x = 5.1;
p[2].y = 7.2;
area(p);
}