在下面的代碼中,我想將終止條件替換爲:如果猜測square和x的比值接近1,while循環應該終止。我嘗試了各種表達式,但沒有正確運行代碼。任何建議?使用Newton-Raphson方法的C中的平方根
# include<stdio.h>
float absolute(float x)
{
if (x < 0)
x = -x;
return x;
}
float square(float x)
{
float guess = 1;
while(absolute(guess*guess - x) >= 0.0001)
guess = ((x/guess) + guess)/2;
return guess;
}
int main(void)
{
printf("square root of 2 is %f\n", square(2));
printf("square root of 3 is %f\n", square(3));
return 0;
}
不要重新發明輪子。 ''中有'fabsf()'函數。 –
2012-12-26 09:30:14
@ H2CO3在''中也有'std :: abs'。 –
rubenvb
@rubenvb問題標籤爲C. –