牛顿法求平方根
#include<stdio.h>
#include<math.h>
int main(void)
{
double x,y=1.0;
printf("Enter a positive number:");
scanf("%lf",&x);
while(fabs((1/2*(x/y+y))-y)>=0.00001*y)
{
y=1/2*(x+x/y);
}
printf("Square root:%f\n",y);
return 0;
}我这个程序运行不出来,请大家帮助我找找错误。谢谢啦。
[解决办法]
你那个fabs方法在哪?
[解决办法]
while(fabs((1/2*(x/y+y))-y)>=0.00001*y){y=1/2*(x+x/y);}
[解决办法]
#include<stdio.h>#include<math.h>int main(void){ double x,y=1.0; printf("Enter a positive number:"); scanf("%lf",&x); while(fabs((1.0/2.0*(x/y+y))-y)>=0.00001) { y=1.0/2.0*(y+x/y); printf( "y=%lf\n", y ); } printf("Square root:%f\n",y); return 0;}
[解决办法]
主要是这句有问题:y=1/2*(x+x/y);
应该改为:y=1/2*(y+x/y);