这个最简单的c语言程序为什么输出结果是0呢?

#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 啊追问

printf用%lf后结果为什么还是-0.000000啊?

追答

输出输入要一致

double的 你输入输出都要是%lf才可以的

配套

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-07
因为你定义的main主函数为空,无返回值,而你的代码返回值是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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网