找到一个带有循环的平方根

时间:2009-11-15 19:49:04

标签: c

double sqrtIt(double x, double low_guess, double high_guess) {
    int n = 10;
    int num = 0;
    while ( n > 0.000000000000001){
        n = n / 10;
        while (num < x && low_guess <= (low_guess * 10)){
            low_guess = low_guess + n;
            num = low_guess * low_guess; 
            }
    }
    return low_guess;
}

我尝试使用上面的代码来查找数字的平方根。该函数大部分时间都能正常工作,但当数字为2时,我得到“当前位置没有可用的源代码。显示反汇编”错误来自行num = low_guess * low_guess;我不知道做错了什么,以及什么显示拆卸呢?感谢

4 个答案:

答案 0 :(得分:2)

这个函数有一些问题,但从这段代码中得到这似乎是一个非常奇怪的错误。我认为你在程序中的其他地方犯了一些其他错误,然后该错误导致了这个问题。

答案 1 :(得分:2)

“没有源代码可用”消息可能表示您没有在调试模式下进行编译,因此您的IDE无法进行源级调试。我认为这里可能存在一些混乱,这是第一次尝试处理IDE而引起的......

正如其他人所说,你应该声明n和num是double,而不是int。

可能一旦你对你的开发环境(以及语言)越来越熟悉,其中一些东西就会自行解决。

答案 2 :(得分:1)

您的代码中是否有拼写错误?
对于非负数,low_guess&lt; =(low_guess * 10)始终为真......

答案 3 :(得分:0)

即使它起作用也会非常低效。我猜你想写这样的东西

double sqrtIt(double x)
{
  double guess1, guess2;
  guess1=1.0;
  do
  {
    guess2=x/guess1;
    guess1=(guess1+guess2)/2;
  }
  while (abs(guess1,guess2)<0.0000001);
  return guess1;
}