本题考察的是三维空间中三角形的计算,需要用到勾股定理和海伦公式。

首先定义一个三维坐标点的结构体,包括 'x'、'y'、'z' 三个坐标值。

struct SPoint //点
{
    double x;
    double y;
    double z;
} a1, a2, a3;

接着定义三个变量 'a'、'b'、'c' 分别表示三条边的长度,'P' 表示半周长,'s' 表示面积。

double P = 0, s = 0, a = 0, b = 0, c = 0;

接着从标准输入中读入三个点的坐标值。

scanf('%lf%lf%lf', &a1.x, &a1.y, &a1.z, &a2.x, &a2.y, &a2.z, &a3.x, &a3.y, &a3.z);

计算三条边的长度。

a = sqrt((a1.x - a2.x) * (a1.x - a2.x) + (a1.y - a2.y) * (a1.y - a2.y) + (a1.z - a2.z) * (a1.z - a2.z));
b = sqrt((a2.x - a3.x) * (a2.x - a3.x) + (a2.y - a3.y) * (a2.y - a3.y) + (a2.z - a3.z) * (a2.z - a3.z));
c = sqrt((a1.x - a3.x) * (a1.x - a3.x) + (a1.y - a3.y) * (a1.y - a3.y) + (a1.z - a3.z) * (a1.z - a3.z));

计算半周长。

P = (a + b + c) / 2.0;

计算面积。

s = sqrt(P * (P - a) * (P - b) * (P - c));

最后输出面积。

printf('%.2lf', s);

原文地址: https://www.cveoy.top/t/topic/nHSS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录