当前位置: 代码迷 >> C语言 >> [求助]奇怪问题
  详细解决方案

[求助]奇怪问题

热度:105   发布时间:2007-07-29 14:40:30.0
[求助]奇怪问题
关于以下两个程序
#include <stdio.h>
main()
{
float a;
scanf("%f",&a);
printf("%f\n",a);
}


#include <stdio.h>
main()
{
double a;
scanf("%f",&a);
printf("%f\n",a);
}

输入12.35
为什么第一个输出12.350000
而第二个输出0.000000

----------------解决方案--------------------------------------------------------
double a;
第2句定义A是double啊而你用的是%f啊
----------------解决方案--------------------------------------------------------
double型用scanf读入时应使用%lf
程序应改成:

#include <stdio.h>
main()
{
double a;
scanf("%lf",&a);
printf("%lf\n",a);
}

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
注意一下f和d类型数据长度不同,你定义了是double它的字长比float大 ,你输入是按f格式化输入的话就会出问题
建议你自己用f输入 d显示 然后仔细想想在内存里f和b 各占多少字节!

----------------解决方案--------------------------------------------------------
明白了,多谢大家!!!!
----------------解决方案--------------------------------------------------------
  相关解决方案