[求助]奇怪问题
关于以下两个程序#include <stdio.h>
main()
{
float a;
scanf("%f",&a);
printf("%f\n",a);
}
main()
{
float a;
scanf("%f",&a);
printf("%f\n",a);
}
#include <stdio.h>
main()
{
double a;
scanf("%f",&a);
printf("%f\n",a);
}
输入12.35main()
{
double a;
scanf("%f",&a);
printf("%f\n",a);
}
为什么第一个输出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 各占多少字节!
----------------解决方案--------------------------------------------------------
明白了,多谢大家!!!!
----------------解决方案--------------------------------------------------------