-5
我能夠運行該程序,但它沒有做它應該做的。它一直在問號碼。 (用C語言編寫)爲什麼程序不斷要求輸入C?
算法我試圖遵循的是 -
第1步:猜的值設置爲1
第2步:如果|猜測^ 2 - X | (ε=ε)
步驟3:將猜測值設置爲(x/guess + guess)/ 2並返回到步驟2.
步驟4:猜測是平方根。
This is the output I am getting
#include <stdio.h>
float sqr_root(float n);
float absolute_value(float n) ;
int main(void)
{
float n ;
printf("Enter a positive number :");
scanf("%f" , &n);
printf("Square root of %f is %f \n" , n , sqr_root(n));
}
float absolute_value(float n)
{
if (n < 0)
{
n = -n ;
}
return (n) ;
}
float sqr_root(float n)
{
const float epsilon = 0.00001 ;
float guess = 1.0 ;
float value = absolute_value((guess * guess) - n) ;
while (value > epsilon)
{
guess = ((n/guess) + guess)/2 ;
}
return guess ;
}
向我們展示您所看到的。 –
'while(value> epsilon)'循環永遠不會進入/結束,因爲'value,epsilon'不會改變數值..也許重新計算'value = asolute_value((guess * guess) - n);'in循環? – chux
這是輸出http://i.stack.imgur.com/d4CsI.png –