c语言三点坐标求三角形面积
时间: 2023-10-26 09:20:21 浏览: 675
假设三个点的坐标分别为 (x1, y1), (x2, y2), (x3, y3),则可以使用海龙公式来求解三角形面积,公式如下:
s = (a + b + c) / 2
area = sqrt(s * (s - a) * (s - b) * (s - c))
其中,a、b、c 分别为三个边长,可以使用勾股定理求得:
a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
b = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2))
c = sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3))
因此,完整的代码如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
// 输入三个点的坐标
float x1, y1, x2, y2, x3, y3;
printf("请输入三个点的坐标:\n");
scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
// 计算三条边长
float a = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
float b = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
float c = sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3));
// 计算海龙公式中的 s
float s = (a + b + c) / 2;
// 计算三角形面积
float area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积为:%f\n", area);
return 0;
}
```
注意,如果三个点的坐标不满足构成三角形的条件,则面积计算会出现错误。在实际应用中,可能需要加入输入校验等处理。
阅读全文