求高手指点
#include <stdio.h>void main()
{
double sqrtt(double x);
int a;
double c;
printf("请输入一个数字\n");
scanf("%d",&a);
c =sqrtt(a);
printf("%d的平方根是%f\n",a,c);
}
double sqrtt(double x)
{
doublesum, summ;
double i;
for(i=0.9; ;)
{
i = i + 0.01;
sum = i * i;
summ = (i+0.01) * (i+0.01);
if(sum <= x && summ > x )
{
return i;
break;
}
}
}
这个输入4的时候,为什么输出的结果是1.99,调试半天也不知道为啥,求高手指点下,谢谢 应该是算法本身的精度问题,加之计算机内部的精度也有影响 BngThea 发表于 2018-5-28 10:28
应该是算法本身的精度问题,加之计算机内部的精度也有影响
原来如此,我感觉我写的应该没有问题啊,肯定输出结果应该是2 啊
页:
[1]