求这题C++的答案

2025-01-05 05:32:26
推荐回答(2个)
回答1:

#include
#include
class Point
{
double x, y;
public:
Point(double x, double y)
{
this->x = x;
this->y = y;
}

void print()
{
printf("(%f,%f)\n", x, y);
}
friend double distance(Point, Point);
friend double area(Point, Point, Point);
};

double distance(Point a, Point b)
{
return sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
}

double area(Point a, Point b, Point c)
{
double s1 = distance(a, b);
double s2 = distance(a, c);
double s3 = distance(b, c);
double p = (s1 + s2 + s3) / 2;
return sqrt(p*(p - s1)*(p - s2)*(p - s3));
}

int main()
{
Point a(5, 10), b(1, 67), c(50, -25);
printf("三角形的面积为:%.3f\n",area(a,b,c));
return 0;
}

回答2:

面积公式错误,面积并不等于0.5*(a+b+c),在错误的公式下得不到正确结果的