求平面坐标系中简单四边形ABCD的面积。简单四边形是指边仅仅在顶点处相交。 输入格式: 依次给出4个顶点A、B、C、D的整数坐标,题目保证所有坐标的绝对值<10000。 输出格式: 输出四边形的面积(保留1位小数),题目。 输入样例: 在这里给出2组输入。例如: 0 0 0 1 1 1 1 0 1 2 3 4 5 6 7 8 输出样例: 在这里给出相应的输出。例如: 1.0 0.0。用c语言生成
时间: 2024-03-10 20:46:50 浏览: 121
以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int x[4], y[4];
double a[4];
for (int i = 0; i < 4; i++) {
scanf("%d %d", &x[i], &y[i]);
}
for (int i = 0; i < 4; i++) {
a[i] = sqrt(pow(x[i] - x[(i + 1) % 4], 2) + pow(y[i] - y[(i + 1) % 4], 2));
}
double p = (a[0] + a[1] + a[2] + a[3]) / 2;
double s = sqrt((p - a[0]) * (p - a[1]) * (p - a[2]) * (p - a[3]));
printf("%.1lf", s);
return 0;
}
```
思路解析:
根据题意,我们需要求出简单四边形的面积。根据海伦公式,我们可以先求出四条边的长度,然后计算半周长 $p$,最后用海伦公式 $S = \sqrt{p(p-a_1)(p-a_2)(p-a_3)(p-a_4)}$ 计算面积。
具体实现时,我们可以分别计算四条边的长度 $a_1, a_2, a_3, a_4$,然后计算半周长 $p = (a_1 + a_2 + a_3 + a_4) / 2$,最后用上述公式计算面积。其中计算边长时,我们可以利用勾股定理求出两点之间的距离。
完整代码中,我们先读入四个点的坐标,然后分别计算四条边的长度 $a_1, a_2, a_3, a_4$,并存储在数组 `a` 中。接着,我们根据海伦公式计算面积 $S$ 并输出即可。注意输出时需要保留一位小数。
阅读全文