这个程序的结果不是所要的!
原文件如下:
#include<iostream.h>
#include<math.h>
const double angle=2*3.1415926;
void main()
{
double precision=0.00000001;
double r[]={0.5,5.0,50};
int i=0;
while(i<3)
{
double circle1,circle2,t;
int n=3;
do
{
double x=angle*1.0/(2.0*n);
double y=angle*1.0/(2.0*(n+1));
circle1=2*n*sin(x)*r[i];
circle2=2*(n+1)*sin(y)*r[i];
t=circle2-circle1;
++n;
}while(t<precision);
cout<<"半径为"<<r[i]<<"的圆至少分成"<<n<<"份能满足条件!"<<endl;
i++;
}
}
这个程序的结果是要通过利用正多边形的边长来代替圆的周长(内接多边形),看不同半径的圆要用多少边的正多边形来分才能使误差在0.000001以下,但是输出的结果竟然都一样,不知道是哪儿的问题?