zoukankan      html  css  js  c++  java
  • while中同时使用scanf和break的易错点


    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 "); 20 else 21 printf("EASY "); 22 flag = true; 23 } 24 }

    如果加入了break,当输入为

    4

    0 1 0 1

    输出为

    HEAD

    EASY

    (等待输入一个数字)

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

    输出HEAD

    n被0赋值

    输出EASY

    n被1赋值

    等待输入一个数字

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

    HEAD

  • 相关阅读:
    1860 最大数
    1164 统计数字
    1063 合并果子
    1098 均分纸牌
    2806 红与黑
    1168 火柴棒等式
    1910 递归函数
    2774 火烧赤壁
    2017.0705.《计算机组成原理》-存储器
    2017.0704.《计算机组成原理》-动态RAM
  • 原文地址:https://www.cnblogs.com/theSunAndSnow/p/11735743.html
Copyright © 2011-2022 走看看