首页 > 其他 > 详细

while中同时使用scanf和break的易错点

时间:2019-10-25 00:05:28      阅读:91      评论:0      收藏:0      [点我收藏+]

1
#include <iostream> 2 #include <cstdio> 3 using namespace std; 4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 5 6 int main(int argc, char** argv) { 7 int n, difficulty; 8 bool flag = true; 9 while(scanf("%d", &n) != EOF){ 10 while(n){ 11 n--; 12 scanf("%d", &difficulty); 13 if(difficulty){ 14 flag = false; 15 //break;不可以写break,一旦写了break,一遇到1就跳出,输入行的1后的其余部分被认为是下次输入 16 } 17 } 18 if(!flag) 19 printf("HARD\n"); 20 else 21 printf("EASY\n"); 22 flag = true; 23 } 24 }

如果加入了break,当输入为

4

0 1 0 1

输出为

HEAD

EASY

(等待输入一个数字)

 

原因是当检测到1break跳出while(n)循环

输出HEAD

n被0赋值

输出EASY

n被1赋值

等待输入一个数字

当在输入一个1时,会输出

HEAD

while中同时使用scanf和break的易错点

原文:https://www.cnblogs.com/theSunAndSnow/p/11735743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!