用C写个代码输入三个点坐标判断是否能组成三角形能输出面积和周长不能输出不能
时间: 2024-09-24 10:12:11 浏览: 38
在C语言中,我们可以编写一个简单的程序来计算三个点是否可以构成三角形,并在可以的情况下输出它们的面积和周长。这里我们假设用户已经输入了三个二维坐标 (x, y) 形式的点。由于直接在控制台输入并处理可能会导致代码长度过长,下面是一个简化的版本,仅演示关键部分:
```c
#include <stdio.h>
#include <math.h>
// 计算两点之间的距离
double distance(int x1, int y1, int x2, int y2) {
return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
}
// 检查三点是否构成三角形
int isTriangle(int x[3], int y[3]) {
if (distance(x[0], y[0], x[1], y[1]) + distance(x[1], y[1], x[2], y[2])
> distance(x[0], y[0], x[2], y[2]) && // 邻边之和大于对角线
distance(x[0], y[0], x[2], y[2]) + distance(x[2], y[2], x[1], y[1])
> distance(x[1], y[1], x[0], y[0])) { // 同理检查其他两个对角线
return 1; // 能构成三角形
}
return 0;
}
// 计算三角形面积
double triangleArea(int x[3], int y[3]) {
double a = distance(x[0], y[0], x[1], y[1]);
double b = distance(x[1], y[1], x[2], y[2]);
double c = distance(x[0], y[0], x[2], y[2]);
// 使用海伦公式计算面积
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
// 计算三角形周长
double trianglePerimeter(int x[3], int y[3]) {
return distance(x[0], y[0], x[1], y[1]) + distance(x[1], y[1], x[2], y[2]) + distance(x[0], y[0], x[2], y[2]);
}
int main() {
int x[] = {0, 0, 10}; // 示例点的坐标
int y[] = {0, 10, 5}; // 示例点的坐标
if (isTriangle(x, y)) {
printf("这三个点可以构成三角形。\n");
printf("面积: %.2f\n", triangleArea(x, y));
printf("周长: %.2f\n", trianglePerimeter(x, y));
} else {
printf("这三个点不能构成三角形。\n");
}
return 0;
}
```
这个代码首先检查三个点是否能形成三角形,然后分别计算面积和周长。注意,实际应用中你需要从用户那里获取输入,而不是硬编码示例点。
阅读全文