VS2013中 scanf()函数返回值
2016-04-16 23:34
267 查看
碰到一个笔试题目:
问这段代码是什么作用,其实就是一个很简单的求平均值功能,但是因为一点小错误纠结了好久,记录一下。
VS2013里面不能直接用scanf,会报错,网上有详细的解决方法。
对于double型的变量,scanf时应该使用%lf,float类型应该使用%f。 而对于printf , double和scanf都可以使用%f,double也可以用%lf。
scanf()函数有返回值且为int型。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
另外,考虑这个情况
这个时候如果输入1 2 3, 那么i是等于3的,而不是2。scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。输入项的个数是3个,有3个值进入了缓冲区,两个被赋值了,一个扔掉了。
double x, ret = 0; for(int i =1; scanf("%lf",&x);++i){ ret += (x-ret)/i; }
问这段代码是什么作用,其实就是一个很简单的求平均值功能,但是因为一点小错误纠结了好久,记录一下。
VS2013里面不能直接用scanf,会报错,网上有详细的解决方法。
对于double型的变量,scanf时应该使用%lf,float类型应该使用%f。 而对于printf , double和scanf都可以使用%f,double也可以用%lf。
scanf()函数有返回值且为int型。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
另外,考虑这个情况
void main() { int a,b,i; i=scanf("%d%d%d",&a,&b); printf("%d",i); }
这个时候如果输入1 2 3, 那么i是等于3的,而不是2。scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。输入项的个数是3个,有3个值进入了缓冲区,两个被赋值了,一个扔掉了。
相关文章推荐
- Jersey(1.19.1) - Security
- Linux防止“rm -rf /”误操作的方法
- Merge OUTPUT 高级用法综合写的一个MergeTab的存储过程
- POJ-1655 Balancing Act
- 数据平台的简单使用
- SLAM学习
- Django:之ORM、CMS和二维码生成
- Windows server 2012R2安装活动目录
- 方便学习的一些经典网站
- HDU 5665
- 使用 PDO 方式将 Session 保存到 MySQL 数据中
- 抛砖微信公众号应用开发
- mysql 下载及安装方法
- 【ATF】钱正平:大规模实时计算及其在阿里的应用与创新
- ubuntu下使用VNC连接树莓派raspberry
- ubuntu14.04配opencv2.4.11
- [LeetCode]70. Climbing Stairs
- 20160416
- Instruments检查视图卡顿和优化
- Eclipse中的常用快捷键