While()和scanf的搭配使用问题
算法题目中经常会用到几个while语句,能够同时输入和判断,比较好用
1、while(scanf("%d",&n),n)
功能:当n为0时中止循环
这里要先说一下逗号表达式:逗号表达式的值是逗号后面的那个数。例如x=(5,6),则x=6。
while(scanf("%d",&n),n)
括号里的语句其实就是个逗号表达式,它的返回值是n的值,所以这个语句就相当于while(n),n=0时跳出循环,写成这样是为## 标题了输入。
如果是while(scanf("%d%d",&n,&m,),n,m)
,那么就相当于while(m)。
2、while(scanf("%d",&n)!=EOF)和while(~scanf("%d",&n))
功能:当读到文件结尾时中止循环
scanf语句的返回值为成功赋值的个数,例如scanf("%d %d",&a,&b)
,如果a、b均赋值成功返回值为2,只是a赋值成功返回1,a、b都不成功返回0,出错的时候返回EOF。
~是按位取反,scanf语句如果没有输入值就是返回-1,按位取反结果为0。
注意:这两种方法在输入字母的时候会变成死循环,而scanf("%d %d",&a,&b)==2不会。windows下可通过按“Ctrl +Z”、linux下可通过“Ctrl + D”来来达到“输入”文件结束符的效果,结束循环。
3、while(scanf("%d",&n)==1)
功能:赋值失败,跳出循环
这个应该很好理解了吧,如果是scanf("%d%d",&n,&m)
就是while(scanf("%d %d",&a,&b)==2)
While()和scanf的搭配使用问题相关推荐
- 搭配飞行员 dinic
[网络流24题] 搭配飞行员 ★★☆ 输入文件:flyer.in 输出文件:flyer.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 飞行大队有若干个来自各 ...
- 问题 B: 小鱼的搭配购物(并查集+01背包)
问题 B: 小鱼的搭配购物 时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 小鱼最近特别喜欢口红,决定去选口红,商店里有n支口红,口红被编号为1,2,--n,并 ...
- scanf与gets的区分
1.getsc( )函数将接收整个字符串直到回车为止. 2.scanf()函数相比gets()函数输入字符串存在一个问题,那就是输了空格之后会认为输入字符串结束,空格后字符将作为下一个输入项处理. 当 ...
- 【printf函数与scanf函数】(学习笔记5--标准I/O函数)
标准I/O函数 一.printf函数 二.scanf函数 一.printf函数 printf函数通常被称为"格式化打印函数",它的第一个参数称为"格式化字符串" ...
- 学生搭配问题——C++实现队列
学生搭配问题 一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.请设 ...
- scanf()函数的使用
1.如果使用scanf()来读取函数中定义的基本变量类型的值,请在变量名之前加一个&. 2.如果受用scanf()把一个字符串读进一个字符数组中,则不需要使用&. 以下为简单的测试程序 ...
- P1455 搭配购买
依旧是并查集为主,这一题我们还需要注意的是"尽量多价值的云"和"一些云朵是搭配买的",一看到"尽量多价值的云"我们就应该能想到01背包问题, ...
- 【网络流24题】搭配飞行员(最大流+二分图匹配)
传送门 搭配飞行员 题意:二分图匹配裸题,不多说 I think Dinic算法跑最大流解决||匈牙利算法 Code 代码一:Dinic #include<cstdio> #inc ...
- c语言——输入方式gets,scanf,fgets分析
我们使用最广泛的输入方式应该是scanf函数,scanf可输入的数据类型范围广,使用便捷.但其也不乏缺陷,而且某些时候使用gets和getchar会更加高效. 先来说说scanf scanf属于std ...
最新文章
- Eclipse SDK构建J2EE开发环境
- linux管理用户和文件权限
- 阿里云RDS vs 自建MySQL,这篇评测终结你的选择困难症!
- 宏定义 #define 和常量 const 的区别
- 科技部部长:不唯论文,不是讲不要论文
- geth 转账_eth客户端安装 geth使用 批量转账(一)
- 微服务流控防护场景与应对措施
- iQOO Neo6入网:骁龙8旗舰平台+80W快充
- cogs 315. [POJ3255] 地砖RoadBlocks
- 量子计算机人类复活,死人有没有可能复活?从量子尺度来分析是有可能
- 硬盘出现c7导致计算机蓝屏,硬盘存在问题_硬盘存在问题c7
- 利用微信JSSDK实现自动定位
- AD 画PCB 布线时,连线就变绿
- mac电脑如何查看cpu占用率?以及如何修复Mac的“ kernel_task” CPU使用率过高的Bug
- linux smb无密码错误,smb无法登录提示用户名密码不正确错误排查
- 基于SSM实现的水果店收银系统
- Python requests库Proxy代理问题
- css3魔方3乘3每层旋转_CSS3 旋转魔方效果
- 梯度累加(Gradient Accumulation)
- 任天堂游戏 html5,任天堂:会让粉丝们在Switch上玩到《毁灭战士:永恒》