scanf函数输入float数需要注意的问题
在MS VS2010上用scanf函数读入一个double数据,代码如下
#include<stdio.h>
int main()
{
double n;
scanf("%f",&n);
printf("sum=%f\n",n);
return 0;
}
输入2,发现返回的是一个很小的负数,百思不得其解,后来发现是格式控制的问题,只要把格式控制符变成%lf就正常了。
再试了一下float类型的数据,如果格式控制符用%lf同样会报错。
因此,结论是scanf函数的格式控制符必须和数据类型匹配,
%lf对应double类型,
%f对应float类型。