次のコードでは、終了条件を次のように置き換えたいと思います: 推測二乗と x の比率が 1 に近い場合、while ループは終了する必要があります。さまざまな式を試しましたが、コードを正しく実行するものはありませんでした。なにか提案を?
# 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;
}