zoukankan      html  css  js  c++  java
  • 转:C语言:error: a label can only be part of a statement and a declaration is not a statement|

    转: C语言:error: a label can only be part of a statement and a declaration is not a statement|

    原文:https://blog.csdn.net/qq_30242609/article/details/52858115 

    场景还原

    一个简单的switch语句Demo

    #include<stdio.h>
    int main()
    {
      int a=1, b=2, re;
      char c;
      scanf("%c", &c);
      switch(c)
      {
        case '+':
          re = a + b;
          break;
        case '$':
          re = a - b;
          re++;
          break;
        case '#':
          int other = 3;
          re = a + b + other;
          break;
        default:
          printf("Illegal input!
    ");
          break;
      }
      printf("%d
    ", re);
    }
    



    出错原因

    在switch语句里定义了新的变量。在上例中在case '#'语句块中定义了新的变量other。
    解决办法

    给定义了新变量的case语句块套上大括号,这个错误就没了。
    改后代码

    #include<stdio.h>
    int main()
    {
      int a=1, b=2, re;
      char c;
      scanf("%c", &c);
      switch(c)
      {
        case '+':
          re = a + b;
          break;
        case '$':
          re = a - b;
          re++;
          break;
        case '#':
        {
          int other = 3;
          re = a + b + other;
          break;
        }
        default:
          printf("Illegal input!
    ");
          break;
      }
      printf("%d
    ", re);
    } 
    
  • 相关阅读:
    矩形覆盖
    跳台阶与变态跳台阶
    有几个PAT【*】
    找零钱
    有理数的四则运算
    旧键盘打字
    查验身份证
    完美数列【置顶】
    旧键盘
    超简单webservice实例
  • 原文地址:https://www.cnblogs.com/igfirstblog/p/9892088.html
Copyright © 2011-2022 走看看