None

Download this Media File - (Right Click)

Download this MP3 - (Right Click)
   1:  #include<cstdio>
   2:  #include<cstdlib>
   3:  #include<cmath>
   4:  #define eps 1e-8
   5:  #define max 1000000 
   6:  struct Point 
   7:  {
   8:         float x ;
   9:         float y ;
  10:  };
  11:  Point point[max];
  12:  using namespace std ;     
  13:  int main()
  14:  {
  15:      int n  = 0 ;
  16:      state:     
  17:      printf("请输入点的个数(上限不要超过1000,000):/n"); 
  18:      scanf("%d",&n) ;       //input the number of points
  19:      while(n<3)
  20:      {
  21:             printf("输入点个数小于三个,无法确定唯一圆,请重新输入!/n");
  22:             scanf("%d",&n);
  23:      }     
  24:      double sum_x = 0 ;
  25:      double sum_y = 0 ;
  26:      double sum_xy = 0 ;
  27:      double sum_x_2 = 0 ;
  28:      double sum_y_2 = 0 ;
  29:      double sum_x_y_2 = 0 ;
  30:      double sum_y_x_2 = 0 ;
  31:      double sum_x_3 = 0 ;
  32:      double sum_y_3 = 0 ;
  33:      double temp_x_2 = 0 ;
  34:      double temp_y_2 = 0 ;
  35:      double P , Q ,R ,T , W ;
  36:      printf("请输入点的坐标,中间以空格间隔:/n");
  37:      for(int i=0;i<n;++i)    //input n point location
  38:      {
  39:           scanf("%f %f",&point[i].x,&point[i].y);
  40:           sum_x += point[i].x;
  41:           sum_y += point[i].y;
  42:           sum_xy +=point[i].x*point[i].y ;
  43:           temp_x_2 = point[i].x*point[i].x ;
  44:           temp_y_2 = point[i].y*point[i].y ;
  45:           sum_x_2 += temp_x_2 ;
  46:           sum_y_2 += temp_y_2 ;
  47:           sum_x_y_2 += temp_y_2*point[i].x ;
  48:           sum_y_x_2 += temp_x_2*point[i].y ;
  49:           sum_x_3 += temp_x_2*point[i].x ;
  50:           sum_y_3 += temp_y_2*point[i].y ;
  51:      }
  52:      P = n*sum_x_2 - sum_x*sum_x ;
  53:      Q = n*sum_xy  - sum_x*sum_y ;
  54:      R = n*(sum_x_3+sum_x_y_2)-(sum_x_2+sum_y_2)*sum_x ;
  55:      T = n*sum_y_2 - sum_y*sum_y ;
  56:      W = n*(sum_y_x_2+sum_y_3)-(sum_x_2+sum_y_2)*sum_y ;
  57:      if(abs(Q*Q-P*T)<eps)
  58:      {
  59:            printf("ERROE/n");
  60:            goto state;
  61:      }
  62:      else
  63:      {
  64:          double A = (W*Q-R*T)/(P*T-Q*Q);
  65:          double B = (P*W-Q*R)/(Q*Q-P*T);
  66:          double C = -(sum_x_2+sum_y_2+A*sum_x+B*sum_y)/n ;
  67:          double r = 0.50*sqrt(A*A+B*B-4*C);
  68:          printf("圆心坐标 :");
  69:          printf("(%f,%f)/n",A/2,B/2);
  70:          printf("圆半径 : ");
  71:          printf("%f/n",r) ;
  72:          }
   1:  #include<cstdio>
   2:  #include<cstdlib>
   3:  #include<cmath>
   4:  #define eps 1e-8
   5:  #define max 1000000 
   6:  struct Point 
   7:  {
   8:         float x ;
   9:         float y ;
  10:  };
  11:  Point point[max];
  12:  using namespace std ;     
  13:  int main()
  14:  {
  15:      int n  = 0 ;
  16:      state:     
  17:      printf("请输入点的个数(上限不要超过1000,000):/n"); 
  18:      scanf("%d",&n) ;       //input the number of points
  19:      while(n<3)
  20:      {
  21:             printf("输入点个数小于三个,无法确定唯一圆,请重新输入!/n");
  22:             scanf("%d",&n);
  23:      }     
  24:      double sum_x = 0 ;
  25:      double sum_y = 0 ;
  26:      double sum_xy = 0 ;
  27:      double sum_x_2 = 0 ;
  28:      double sum_y_2 = 0 ;
  29:      double sum_x_y_2 = 0 ;
  30:      double sum_y_x_2 = 0 ;
  31:      double sum_x_3 = 0 ;
  32:      double sum_y_3 = 0 ;
  33:      double temp_x_2 = 0 ;
  34:      double temp_y_2 = 0 ;
  35:      double P , Q ,R ,T , W ;
  36:      printf("请输入点的坐标,中间以空格间隔:/n");
  37:      for(int i=0;i<n;++i)    //input n point location
  38:      {
  39:           scanf("%f %f",&point[i].x,&point[i].y);
  40:           sum_x += point[i].x;
  41:           sum_y += point[i].y;
  42:           sum_xy +=point[i].x*point[i].y ;
  43:           temp_x_2 = point[i].x*point[i].x ;
  44:           temp_y_2 = point[i].y*point[i].y ;
  45:           sum_x_2 += temp_x_2 ;
  46:           sum_y_2 += temp_y_2 ;
  47:           sum_x_y_2 += temp_y_2*point[i].x ;
  48:           sum_y_x_2 += temp_x_2*point[i].y ;
  49:           sum_x_3 += temp_x_2*point[i].x ;
  50:           sum_y_3 += temp_y_2*point[i].y ;
  51:      }
  52:      P = n*sum_x_2 - sum_x*sum_x ;
  53:      Q = n*sum_xy  - sum_x*sum_y ;
  54:      R = n*(sum_x_3+sum_x_y_2)-(sum_x_2+sum_y_2)*sum_x ;
  55:      T = n*sum_y_2 - sum_y*sum_y ;
  56:      W = n*(sum_y_x_2+sum_y_3)-(sum_x_2+sum_y_2)*sum_y ;
  57:      if(abs(Q*Q-P*T)<eps)
  58:      {
  59:            printf("ERROE/n");
  60:            goto state;
  61:      }
  62:      else
  63:      {
  64:          double A = (W*Q-R*T)/(P*T-Q*Q);
  65:          double B = (P*W-Q*R)/(Q*Q-P*T);
  66:          double C = -(sum_x_2+sum_y_2+A*sum_x+B*sum_y)/n ;
  67:          double r = 0.50*sqrt(A*A+B*B-4*C);
  68:          printf("圆心坐标 :");
  69:          printf("(%f,%f)/n",A/2,B/2);
  70:          printf("圆半径 : ");
  71:          printf("%f/n",r) ;
  72:          }
  73:      system("pause");
  74:      return 0 ;
  75:  }
  73:      system("pause");
  74:      return 0 ;
  75:  }

#include #include #include #define eps 1e-8 #define max 1000000 struct Point { float x ; float y ; }; Point point[max]; using namespace std ; int main() { int n = 0 ; state: printf("请输入点的个数(上限不要超过1000,000):/n"); scanf("%d",&n) ; //input the number of points while(n<3) { printf("输入点个数小于三个,无法确定唯一圆,请重新输入!/n"); scanf("%d",&n); } double sum_x = 0 ; double sum_y = 0 ; double sum_xy = 0 ; double sum_x_2 = 0 ; double sum_y_2 = 0 ; double sum_x_y_2 = 0 ; double sum_y_x_2 = 0 ; double sum_x_3 = 0 ; double sum_y_3 = 0 ; double temp_x_2 = 0 ; double temp_y_2 = 0 ; double P , Q ,R ,T , W ; printf("请输入点的坐标,中间以空格间隔:/n"); for(int i=0;i < ; 0 return system(?pause?); } printf(?%f/n?,r) ?); : printf(?圆半径 2); 2,B printf(?(%f,%f)/n?,A :?); printf(?圆心坐标 r="0.50*sqrt(A*A+B*B-4*C);" double C="-(sum_x_2+sum_y_2+A*sum_x+B*sum_y)/n" B="(P*W-Q*R)/(Q*Q-P*T);" A="(W*Q-R*T)/(P*T-Q*Q);" { else state; goto printf(?ERROE/n?); if(abs(Q*Q-P*T)
   1: #include<cstdio>
   2: #include<cstdlib>
   3: #include<cmath>
   4: #define eps 1e-8
   5: #define max 1000000 
   6: struct Point 
   7: {
   8:        float x ;
   9:        float y ;
  10: };
  11: Point point[max];
  12: using namespace std ;     
  13: int main()
  14: {
  15:     int n  = 0 ;
  16:     state:     
  17:     printf("请输入点的个数(上限不要超过1000,000):/n"); 
  18:     scanf("%d",&n) ;       //input the number of points
  19:     while(n<3)
  20:     {
  21:            printf("输入点个数小于三个,无法确定唯一圆,请重新输入!/n");
  22:            scanf("%d",&n);
  23:     }     
  24:     double sum_x = 0 ;
  25:     double sum_y = 0 ;
  26:     double sum_xy = 0 ;
  27:     double sum_x_2 = 0 ;
  28:     double sum_y_2 = 0 ;
  29:     double sum_x_y_2 = 0 ;
  30:     double sum_y_x_2 = 0 ;
  31:     double sum_x_3 = 0 ;
  32:     double sum_y_3 = 0 ;
  33:     double temp_x_2 = 0 ;
  34:     double temp_y_2 = 0 ;
  35:     double P , Q ,R ,T , W ;
  36:     printf("请输入点的坐标,中间以空格间隔:/n");
  37:     for(int i=0;i<n;++i)    //input n point location
  38:     {
  39:          scanf("%f %f",&point[i].x,&point[i].y);
  40:          sum_x += point[i].x;
  41:          sum_y += point[i].y;
  42:          sum_xy +=point[i].x*point[i].y ;
  43:          temp_x_2 = point[i].x*point[i].x ;
  44:          temp_y_2 = point[i].y*point[i].y ;
  45:          sum_x_2 += temp_x_2 ;
  46:          sum_y_2 += temp_y_2 ;
  47:          sum_x_y_2 += temp_y_2*point[i].x ;
  48:          sum_y_x_2 += temp_x_2*point[i].y ;
  49:          sum_x_3 += temp_x_2*point[i].x ;
  50:          sum_y_3 += temp_y_2*point[i].y ;
  51:     }
  52:     P = n*sum_x_2 - sum_x*sum_x ;
  53:     Q = n*sum_xy  - sum_x*sum_y ;
  54:     R = n*(sum_x_3+sum_x_y_2)-(sum_x_2+sum_y_2)*sum_x ;
  55:     T = n*sum_y_2 - sum_y*sum_y ;
  56:     W = n*(sum_y_x_2+sum_y_3)-(sum_x_2+sum_y_2)*sum_y ;
  57:     if(abs(Q*Q-P*T)<eps)
  58:     {
  59:           printf("ERROE/n");
  60:           goto state;
  61:     }
  62:     else
  63:     {
  64:         double A = (W*Q-R*T)/(P*T-Q*Q);
  65:         double B = (P*W-Q*R)/(Q*Q-P*T);
  66:         double C = -(sum_x_2+sum_y_2+A*sum_x+B*sum_y)/n ;
  67:         double r = 0.50*sqrt(A*A+B*B-4*C);
  68:         printf("圆心坐标 :");
  69:         printf("(%f,%f)/n",A/2,B/2);
  70:         printf("圆半径 : ");
  71:         printf("%f/n",r) ;
  72:         }
  73:     system("pause");
  74:     return 0 ;
  75: }
   1: #include<cstdio>
   2: #include<cstdlib>
   3: #include<cmath>
   4: #define eps 1e-8
   5: #define max 1000000 
   6: struct Point 
   7: {
   8:        float x ;
   9:        float y ;
  10: };
  11: Point point[max];
  12: using namespace std ;     
  14: {
  15:     int n  = 0 ;
  16:     state:     
  17:     printf("请输入点的个数(上限不要超过1000,000):/n"); 
  18:     scanf("%d",&n) ;       //input the number of points
  19:     while(n<3)
  20:     {
  21:            printf("输入点个数小于三个,无法确定唯一圆,请重新输入!/n");
  22:            scanf("%d",&n);
  23:     }     
  24:     double sum_x = 0 ;
  25:     double sum_y = 0 ;
  26:     double sum_xy = 0 ;
  27:     double sum_x_2 = 0 ;
  28:     double sum_y_2 = 0 ;
  29:     double sum_x_y_2 = 0 ;
  30:     double sum_y_x_2 = 0 ;
  31:     double sum_x_3 = 0 ;
  32:     double sum_y_3 = 0 ;
  33:     double temp_x_2 = 0 ;
  34:     double temp_y_2 = 0 ;
  35:     double P , Q ,R ,T , W ;
  36:     printf("请输入点的坐标,中间以空格间隔:/n");
  37:     for(int i=0;i<n;++i)    //input n point location
  38:     {
  39:          scanf("%f %f",&point[i].x,&point[i].y);
  40:          sum_x += point[i].x;
  41:          sum_y += point[i].y;
  42:          sum_xy +=point[i].x*point[i].y ;
  43:          temp_x_2 = point[i].x*point[i].x ;
  44:          temp_y_2 = point[i].y*point[i].y ;
  45:          sum_x_2 += temp_x_2 ;
  46:          sum_y_2 += temp_y_2 ;
  47:          sum_x_y_2 += temp_y_2*point[i].x ;
  48:          sum_y_x_2 += temp_x_2*point[i].y ;
  49:          sum_x_3 += temp_x_2*point[i].x ;
  50:          sum_y_3 += temp_y_2*point[i].y ;
  51:     }
  52:     P = n*sum_x_2 - sum_x*sum_x ;
  53:     Q = n*sum_xy  - sum_x*sum_y ;
  54:     R = n*(sum_x_3+sum_x_y_2)-(sum_x_2+sum_y_2)*sum_x ;
  55:     T = n*sum_y_2 - sum_y*sum_y ;
  56:     W = n*(sum_y_x_2+sum_y_3)-(sum_x_2+sum_y_2)*sum_y ;
  57:     if(abs(Q*Q-P*T)<eps)
  58:     {
  59:           printf("ERROE/n");
  60:           goto state;
  61:     }
  62:     else
  63:     {
  64:         double A = (W*Q-R*T)/(P*T-Q*Q);
  65:         double B = (P*W-Q*R)/(Q*Q-P*T);
  66:         double C = -(sum_x_2+sum_y_2+A*sum_x+B*sum_y)/n ;
  67:         double r = 0.50*sqrt(A*A+B*B-4*C);
  68:         printf("圆心坐标 :");
  69:         printf("(%f,%f)/n",A/2,B/2);
  70:         printf("圆半径 : ");
  71:         printf("%f/n",r) ;
  72:         }
  73:     system("pause");
  74:     return 0 ;
  75: }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值