网站建设柒首先金手指9,玉门市住房和城乡建设局网站,创新优典网站建设,建设银行官方网站首页入口给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3)#xff0c;检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字#xff0c;即三个点的坐标x1、y1、x2、y2、x3、y3。
输出格式:
若这3个点不能构成三角形#xff0c;则在一行中输…给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3)检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字即三个点的坐标x1、y1、x2、y2、x3、y3。
输出格式:
若这3个点不能构成三角形则在一行中输出“Impossible”若可以则在一行中输出该三角形的周长和面积格式为“L 周长, A 面积”输出到小数点后2位。
输入样例1:
4 5 6 9 7 8输出样例1:
L 10.13, A 3.00输入样例2:
4 6 8 12 12 18输出样例2:
Impossible法一海伦公式 判断是否为三角形: 根据任意两边之和大于第三边 求三角形面积海伦公式。设三角形三边分别为a,b,c三角形的面积则为 S p ( p − a ) ( p − b ) ( p − c ) ) S\sqrt{ p(p-a)(p-b)(p-c) )} Sp(p−a)(p−b)(p−c)) 其中pabc)/2 a,b,c为三角形的各边。
#include stdio.h
#include math.hint main(){double x1, y1, x2, y2, x3, y3;double edge1, edge2, edge3, L, A;scanf(%lf %lf %lf %lf %lf %lf, x1, y1, x2, y2, x3, y3);// 计算三条边长度edge1 sqrt( pow(x1-x2, 2) pow(y1-y2, 2) );edge2 sqrt( pow(x1-x3, 2) pow(y1-y3, 2) );edge3 sqrt( pow(x2-x3, 2) pow(y2-y3, 2) );// 判断是否为三角形: 根据任意两边之和大于第三边if( edge1edge2edge3 edge1edge3edge2 edge2edge3edge1 ){L edge1 edge2 edge3;double p L / 2;A sqrt(p * (p - edge1) * (p - edge2) * (p - edge3));printf(L %.2lf, A %.2lf, L, A);}elseprintf(Impossible);return 0;
}法二二阶行列式的几何意义但是运行错误没找到错在哪儿
#include stdio.h
#include math.hint main() {float x1, y1, x2, y2, x3, y3;float edge1, edge2, edge3, L, A;scanf(%f %f %f %f %f %f, x1, y1, x2, y2, x3, y3);edge1 sqrt(pow(x1 - x2, 2) pow(y1 - y2, 2));edge2 sqrt(pow(x1 - x3, 2) pow(y1 - y3, 2));edge3 sqrt(pow(x2 - x3, 2) pow(y2 - y3, 2));L edge1 edge2 edge3;float x20,y20,x30,y30;x20 x2- x1;y20 y2-y1;x30 x3-x1;y30 y3-y1;Afabs((x20*y30-y20*x30)/2.0);// 判断是否为三角形:根据任意两边之和大于第三边if (A0.00000001) {printf(L %.2f, A %.2f, L, A);} elseprintf(Impossible);return 0;
}运行结果 易错点
忘记fabsabs() 会对浮点数取整对浮点数取绝对值要用fabsscanf: GPT说某些编译器可能对scanf()函数的 %lf 格式支持不佳导致读取实数值时出现问题为了确保正确的实数值输入可以将%lf改为%f。错误原因是输入位实数和浮点数有关是否是scanf(“%lf”)导致的错误还未确认。