double型变量赋值为7,怎么debug看到的是负数?

来源:百度知道 编辑:UC知道 时间:2024/05/15 01:40:02
定义了一个double变量。从标准输入,赋值为7,结果出来的结果总是不对,
debug进去看到变量居然被赋值为-9.******
怎么会这样呢?
先谢谢大家了!
附上代码
#include <stdio.h>
#include <stdlib.h>

int main(){
double n;
double i,j,k;
i = 1;
printf("input n: ");
scanf("%f",&n);
do{
j = i;
i = (j + (n/j))/2;
printf("%f\n",i);
}while(i != j);
printf("the result: %f",i);
return EXIT_SUCCESS;
}

功能:根据公式计算一个数的平方根。直到i+1次的结果 ==i次的结果时,结束循环。
debug时,输入7,看到n的值是-9255960454501302000000000000..........

#include <stdio.h>
#include <stdlib.h>

int main()
{
double n;
double i,j;
i = 1;
printf("input n: ");
scanf("%lf",&n); //这里用%lf
do
{
j = i;
i = (j + (n/j))/2;
printf("%f\n",i);
}while(i != j);
printf("the result: %f",i);
return EXIT_SUCCESS;
}

原因不解释了,给个连接楼主看看把
http://zhidao.baidu.com/question/71496992.html?si=6

不会吧

debug进去看到变量居然被赋值为-9.******
的很大可能是你这个数没有给初始值,是动态的局部变量。
没有具体的代码,看不出来更多的

scanf("%f",&n); 加两句fflush(stdin);
和printf(“%f“,n);
看看结果

scanf("%lf",&n);
%f
改成%lf