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类型。

posted @ 2012-04-25 15:57  不堪一喵  阅读(1292)  评论(0编辑  收藏  举报