习题3-5 三角形判断(15 分)
给定平面上任意三个点的坐标$(x_1,y_1)、(x_2,y_2)、(x_3,y_3)$,检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标$x_1、y_1、x_2、y_2、x_3、y_3$。
输出格式:
若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。
输入样例1:
输出样例1:
输入样例2:
输出样例2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <stdio.h> int main(void) { double x1, y1, x2, y2, x3, y3; double side1, side2, side3; double p, perimeter, area; scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3); side1 = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); side2 = sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1)); side3 = sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2)); if(side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) { perimeter = side1 + side2 + side3; p = 0.5 * perimeter; area = sqrt(p * (p - side1) * (p - side2) * (p - side3)); printf("L = %.2f, A = %.2f\n", perimeter, area); } else printf("Impossible"); return 0; }
|