写了一个计算平方根的程序:
main()
{
float i=100,k;
k=sqrt(i);//这个i代入函数以后就变成0了
printf("%f",k);
}
float sqrt(float i)//这个i代入函数以后就变成0了
{
float a1,a2;
for(a1=1;;)
{
a2=(a1+i/a1)/2;
if(a1==a2)
break;
a1=a2;
}
return(a1);
}
代码有问题吗?我运行了一下没有问题啊?
我这里验证正确啊,结果是10.000000。换了个200,结果是14.142136。
有什么问题吗?
我试了下没有楼主说的问题
VC6下测试
没有问题呀.能够正确输出.
不过应该养成好习惯,将函数的定义写到主函数的前面:例如:
float sqrt(float i)//这个i代入函数以后就变成0了
{
float a1,a2;
for(a1=1;;)
{
a2=(a1+i/a1)/2;
if(a1==a2)
break;
a1=a2;
}
return(a1);
}
main()
{
float i=100,k;
k=sqrt(i);//这个i代入函数以后就变成0了
printf("%f",k);
}
没有问题,不过i的初始化不规范,应该是float i = 100.0才对
运行了一下没有问题
没有问题!
楼主规范化一下 float i = 100.0, 应该就 OK了!