三角形判断:输入平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。如果这3个点能构成一个三角形,输出周长和面积(保留两位小数)否则,输出 “Impossible”试编写相应程序。
/*
三角形判断
author: a1bum
*/
#include<stdio.h>
#include<math.h>
int main(){
double x[3],y[3],v[3];
int i;
for( i = 0; i < 3; i++ ){
printf("please input point%d: ", i+1);
scanf("%lf%lf", &x[i], &y[i]);
}
// 求两点之间距离
v[0] = sqrt(pow(x[1]-x[0],2)+pow(y[1]-y[0],2));
v[1] = sqrt(pow(x[2]-x[1],2)+pow(y[2]-y[1],2));
v[2] = sqrt(pow(x[2]-x[0],2)+pow(y[2]-y[0],2));
// printf("%.lf %.lf %.lf", v[0],v[1],v[2]);
if( v[0]+v[1]>v[2] && v[0]+v[2]>v[1] && v[1]+v[2]>v[0]){
double l = v[0]+v[1]+v[2];
printf("circle: %.2lf", l);
double p = l/2;
printf("area: %.2lf", sqrt(p*(p-v[0])*(p-v[2])*(p-v[3])) ); // 利用海伦-秦九韶公式
}else{
printf("Impossible");
}
return 0;
}
谢谢楼上林呼哥的参考