输入三点的坐标值 若该三点能构成三角形则输出周长面积 否则输出Impossible的c语言代码
时间: 2024-10-13 16:05:55 浏览: 52
已知三点坐标求三角形面积-Java算法
在C语言中,判断三个点是否能构成三角形并计算其周长和面积通常需要先验证这三个点是否满足构成三角形的条件(任意两边之和大于第三边),然后才能进行后续的计算。以下是一个简单的示例代码,它首先检查输入的点能否构成三角形,然后计算周长和面积(这里假设每个点由x和y坐标的二维数组表示):
```c
#include <stdio.h>
#include <math.h>
// 函数用于计算两点之间的距离
double distance(int x1[], int y1[], int x2[], int y2[]) {
return sqrt(pow(x2[0] - x1[0], 2) + pow(y2[0] - y1[0], 2));
}
// 判断三点是否构成三角形
int isTriangle(int point1[][2], int point2[][2], int point3[][2]) {
double side1 = distance(point1, point2);
double side2 = distance(point2, point3);
double side3 = distance(point3, point1);
if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1)
return 1;
else
return 0;
}
// 计算三角形的周长
double trianglePerimeter(int point1[][2], int point2[][2], int point3[][2]) {
double side1 = distance(point1, point2);
double side2 = distance(point2, point3);
double side3 = distance(point1, point3);
return side1 + side2 + side3;
}
// 计算三角形的面积(海伦公式)
double triangleArea(int point1[][2], int point2[][2], int point3[][2]) {
double a = distance(point1, point2);
double b = distance(point2, point3);
double c = distance(point3, point1);
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
int points[][2] = {{0, 0}, {3, 0}, {0, 4}}; // 举例的三个点
int isOk = isTriangle(points, points+1, points+2); // 检查是否能构成三角形
if (isOk) {
printf("三角形周长: %.2f\n", trianglePerimeter(points, points+1, points+2));
printf("三角形面积: %.2f\n", triangleArea(points, points+1, points+2));
} else {
printf("Impossible\n");
}
return 0;
}
```
这个程序首先通过`isTriangle`函数检查是否能构成三角形,如果可以,则计算并输出周长和面积;否则,输出"Impossible"。
阅读全文