#include"stdio.h"
#include"math.h"
void main()
{
float a,s=1,s1=1;
scanf("%f",&a);
for(;fabs(s1-s)>=1e-5;)
{s1=s;
s=(s1+a/s1)/2.0; }
printf("%f\n",s);
getch();
}结果不对
#include"stdio.h"
#include"math.h"
void main()
{
float a,s=1,s1=1;
scanf("%f",&a);
for(;fabs(s1-s)>=1e-5;)
{s1=s;
s=(s1+a/s1)/2.0; }
printf("%f\n",s);
getch();
}结果不对
s=1,s1=1;这一步有错 在for循环中fabs(s1-s)>=1e-5一开始就不成立 循环根本就没执行
所以把s1=1改为大于1的数就可以了