#include <stdio.h>
main()
{
double a;
scanf("%f",&a);
printf("a=%f\n",a);
return 0;
}
编译运行,我输入1.2或其它什么数字,但为什么输出的结果都是-0.000000呢?
double 输出时要使用%lf
float 输出时要使用%f
你要把double当做%f输出 溢出了啊
double 8 float 4 啊追问
float 输出时要使用%f
你要把double当做%f输出 溢出了啊
double 8 float 4 啊追问
printf用%lf后结果为什么还是-0.000000啊?
追答输出输入要一致
double的 你输入输出都要是%lf才可以的
配套
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-03-07
因为你定义的main主函数为空,无返回值,而你的代码返回值是0。
可以在main()前面加个int ,或者去掉return 0追问
可以在main()前面加个int ,或者去掉return 0追问
我去掉return 0了
但是结果还是a=-0.000000
这程序为啥就得不到正确的输出呢?
第2个回答 2013-03-07
a是double类型 scanf、printf里面都要写 %lf
第3个回答 2013-03-07
printf的时候要用%lf追问
printf用%lf后结果为什么还是-0.000000啊?
追答那就都用%lf吧,我在小型机上用%f要报错,用%lf正确,测试情况如下:
$ cat a.c
#include
main()
{
double a;
scanf("%lf",&a);
printf("a=%lf\n",a);
return 0;
}
$ cc a.c
$ a.out
1.2
a=1.200000