найти квадратный корень с петлей - PullRequest
0 голосов
/ 15 ноября 2009
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 ]

2 голосов
/ 15 ноября 2009

Есть некоторые проблемы с этой функцией, но это кажется очень странной ошибкой, получаемой из этого кода. Я думаю, что вы сделали какую-то другую ошибку где-то еще в вашей программе, и эта ошибка вызывает эту проблему.

2 голосов
/ 15 ноября 2009

Сообщение «исходный код недоступен» может указывать на то, что вы не компилируете в режиме отладки, поэтому ваша IDE не может выполнить отладку на уровне источника. Я думаю, что здесь есть некоторая путаница, вызванная попыткой разобраться с IDE в первый раз ...

Как уже говорили другие, вам, вероятно, следует объявить n и num двойными, а не int.

Возможно, как только вы лучше познакомитесь со своей средой разработки (а также языком), некоторые из этих вещей сами себя разберут.

1 голос
/ 15 ноября 2009

в вашем коде есть опечатка?
low_guess <= (low_guess * 10) всегда верно для неотрицательного числа ... </p>

0 голосов
/ 16 ноября 2009

Даже если бы это сработало, это было бы довольно неэффективно. Я думаю, вы хотели написать что-то вроде этого

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...