给定平面上任意三个点的坐标(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位。
判断是否为三角形利用了斜率公式:来判断三点是否在同一直线上
面积利用了海伦公式:
#include<stdio.h>
#include<math.h>
int main(void){double x1,x2,x3,y1,y2,y3,a,b,c,sum,p;scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));c=sqrt(pow(x3-x2,2)+pow(y3-y2,2));if((y2-y1)/(x2-x1)==(y2-y3)/(x2-x3)){printf("Impossible");}else{sum=a+b+c;p=sum/2;printf("L = %.2f, A = %.2f\n",sum,sqrt(p*(p-a)*(p-b)*(p-c)));}return 0;
}