给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。如果这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积 。 输入 输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。 输出 若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。 样例输入 复制 4 5 6 9 7 8 样例输出 复制 L=10.13, A=3.00 提示 已知三角形三边a,b,c,则 可以使用海伦公式计算面积S=sqrt(p(p-a)(p-b)(p-c)),其中p=(a+b+c)/2
时间: 2023-05-23 21:00:59 浏览: 297
AreaTri(P1,P2,P3):给定顶点的 3D 坐标的三角形面积-matlab开发
可以使用三角形的性质判断三个点能否构成三角形。设三个点分别为A(x1,y1), B(x2,y2), C(x3,y3),则它们构成三角形的条件是:
1. 任意两点之间的距离都不能为0,即三个点不能在同一条直线上;
2. 任意两边之和大于第三边,即AB+BC>AC, AC+BC>AB, AB+AC>BC。
如果以上两个条件都满足,则可以计算出三角形的周长和面积。
以下是判断三角形和计算面积的代码实现:
```
#include <stdio.h>
#include <math.h>
int main()
{
float x1, y1, x2, y2, x3, y3;
float a, b, c, p, s, l;
scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
a = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
b = sqrt((x2-x3)*(x2-x3) + (y2-y3)*(y2-y3));
c = sqrt((x3-x1)*(x3-x1) + (y3-y1)*(y3-y1));
if(a+b<=c || a+c<=b || b+c<=a)
printf("Impossible\n");
else
{
l = a + b + c;
p = l / 2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
printf("L=%.2f, A=%.2f\n", l, s);
}
return 0;
}
```
当输入样例为"4 5 6 9 7 8"时,输出结果为"L=10.13, A=3.00"。
阅读全文