求三角形的外接圆,解析几何题,推出公式即可AC。
以下是代码;
- #include<stdio.h>
#include<math.h> - double a1,a2,b1,b2,c1,c2;
double x,y,r; - int main()
{
while(scanf("%lf%lf%lf%lf%lf%lf",&a1,&a2,&b1,&b2,&c1,&c2)==6)
{
x=((b2-a2)*((c1*c1+c2*c2)-(a1*a1+a2*a2))-(c2-a2)*((b1*b1+b2*b2)-(a1*a1+a2*a2)))/2/((c2-a2)*(a1-b1)-(b2-a2)*(a1-c1));
y=((b1-a1)*((c1*c1+c2*c2)-(a1*a1+a2*a2))-(c1-a1)*((b1*b1+b2*b2)-(a1*a1+a2*a2)))/2/((c1-a1)*(a2-b2)-(b1-a1)*(a2-c2));
r=sqrt((x-a1)*(x-a1)+(y-a2)*(y-a2));
double r1=-r*r+x*x+y*y;
printf("(x ");
if(x>=0.0)
printf("- %.3lf)^2 + (y ",x);
else
printf("+ %.3lf)^2 + (y ",fabs(x));
if(y>=0.0)
printf("- %.3lf)^2 = %.3lf^2/n",y,r);
else
printf("+ %.3lf)^2 = %.3lf^2/n",fabs(y),r);
if(x>=0.0)
printf("x^2 + y^2 - %.3lfx",2*x);
else
printf("x^2 + y^2 + %.3lfx",2*fabs(x));
if(y>=0.0)
printf(" - %.3lfy ",2*y);
else
printf(" + %.3lfy ",2*fabs(y));
if(r1>=0.0)
printf("+ %.3lf = 0/n",r1);
else
printf("- %.3lf = 0/n",fabs(r1));
printf("/n");
}
return 0;
}