问题描述:
输入三个点的坐标,判断是否构成一个直角三角形。
代码:
#include <iostream>
#include<cstdio>
#include<math.h>
using namespace std;
//定义点坐标
typedef struct node{
float x;
float y;
}point;
//求两点之间的距离
float dis(point p1,point p2){
return(sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)));
}
int main()
{point a;
point b;
point c;
scanf("%f%f",&a.x,&a.y);
scanf("%f%f",&b.x,&b.y);
scanf("%f%f",&c.x,&c.y);
float ab=dis(a,b);
float ac=dis(a,c);
float bc=dis(b,c);
if((ab*ab+ac*ac==bc*bc)||(ab*ab+bc*bc==ac*ac)||(ac*ac+bc*bc==ab*ab)){
printf("yes");
}
else{
printf("no");
}
return 0;
}