ZJU——1439——(计算几何)

 

 1  // Accepted ZJU 1439 C++ 00:00.10 404K 
 2 
 3  // 内切圆与外切圆半径计算
 4 
 5  #include  < stdio.h >
 6  #include  < stdlib.h >
 7  #include  < string .h >
 8  #include  < math.h >
 9 
10  double  inp[ 10 ] ;
11  double  a, b, c ;
12 
13  double  fdist(  double  x1,  double  y1,  double  z1,  double  x2,  double  y2,  double  z2 ) 
14  {
15       return  sqrt( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2) ) ;
16  }
17 
18  double  farea3(  double  a,  double  b,  double  c ) 
19  {
20       double  p  =  ( a + b + c )  /   2  ;  return  sqrt( p * (p - a) * (p - b) * (p - c) ) ;
21  }
22 
23  int  main()
24  {
25       while ( scanf(  " %lf%lf%lf%lf%lf%lf%lf%lf%lf " & inp[ 1 ], & inp[ 2 ], & inp[ 3 ], & inp[ 4 ], & inp[ 5 ], & inp[ 6 ], & inp[ 7 ], & inp[ 8 ], & inp[ 9 ] )  !=  EOF )
26      {
27          a  =  fdist( inp[ 1 ], inp[ 2 ],  inp[ 3 ], inp[ 4 ], inp[ 5 ], inp[ 6 ] ) ;
28          b  =  fdist( inp[ 1 ], inp[ 2 ],  inp[ 3 ], inp[ 7 ], inp[ 8 ], inp[ 9 ] ) ;
29          c  =  fdist( inp[ 7 ], inp[ 8 ],  inp[ 9 ], inp[ 4 ], inp[ 5 ], inp[ 6 ] ) ;
30 
31           double  area  =  farea3( a, b, c ) ;
32           double  r  =  area  *   2   /  (a + b + c) ;
33           double  R  =  (a * b * c) / ( 4 * area) ;
34 
35          printf(  " %0.3lf\n " , (r * r) / (R * R) ) ;
36      }
37 
38       return   0  ;
39  }

你可能感兴趣的:(ZJU——1439——(计算几何))