三角形中线定理:如果BC中点为M,则AB^2+AC^2=2*AM^2+2*BM^2
注意:三角形中线小于两夹边之和的一半大于两夹边之差的一半
#include <stdio.h>
#include <math.h>
typedef struct
{
double x;
double y;
}point;
int main()
{
point A,B,C;
double c,b,m,a;
scanf("%lf%lf%lf",&c,&b,&m);
if(2*m>c+b || 2*m<fabs(b-c))
printf("Mission impossible\n");
else
{
double t=(0.5*c*c+0.5*b*b-m*m);
a=sqrt(t);
B.x=-a;B.y=0;
C.x=a;C.y=0;
double x=(m*m+a*a-b*b)/(2*a);
A.x=x;A.y=sqrt(m*m-x*x);
if(a==0)
{
A.x=b; A.y=0;
}
printf("%.5lf %.5lf\n",A.x,A.y);
printf("%.5lf %.5lf\n",B.x,B.y);
printf("%.5lf %.5lf\n",C.x,C.y);
}
return 0;
}