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;
我不知道做错了什么,以及什么显示拆卸呢?感谢
答案 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;
}