#include <stdio.h> main() { switch(month) { case 2: days=28; break; case 4:case 6:case 9:case 11: days=30; break; default: days=31; break; } printf("%d天\n",days); }
邢慧雅 资深达人 2015-07-18 14:21:04
2972 14 0

老师 这个程序哪儿错了1.png

问题来自: switch语句

共 14 个回答

    祁老师 人气红星 3221天前

    变量使用之前需要定义

    这里的month days没有定义

    邢慧雅 资深达人 3221天前

    回复 祁老师:这是修改后的 这样也可以吧 


    #include <stdio.h>

    main()

    {

    int a;

    printf("请输入一个月份:");

    scanf("%d",&a);

    switch(a)

    {

      case 2:

    printf("28天\n");

    break;

      case 4:case 6:case 9:case 11:

    printf("30天\n");

    break;

      default:

    printf("31天\n");    

    break;

    }

    }


    祁老师 人气红星 3221天前

    回复 邢慧雅:是的 可以

    邢慧雅 资深达人 3221天前

    回复 祁老师:那如果给month和days赋值的话   int month,days;scanf("%d",&month);可以么

    祁老师 人气红星 3221天前

    回复 邢慧雅:可以

    邢慧雅 资深达人 3221天前

    回复 祁老师:老师这个程序里为什么会执行case 2 ? case 2不是当x=2 才会执行么?

    #include <stdio.h>
    main()
    { int x=1,y=0,a=0,b=0;
      switch(x)
      { case 1:
        switch(y)
        { case 0: a++; break;
          case 1: b++; break;
        }   
        case 2: a++;b++;break;
        case 3: a++;b++;
      }
      printf("a=%d,b=%d\n",a,b);
    }

    祁老师 人气红星 3221天前

    回复 邢慧雅:这是一个嵌套的switch语句,case 1后面并没有break 所以会继续执行

    邢慧雅 资深达人 3221天前

    回复 祁老师:可是前面是switch(x)  case 2 不是表示x为2时的情况么?


    祁老师 人气红星 3221天前

    回复 邢慧雅:你回去仔细看视频讲解吧。

    x初始为1 所以执行case 1 当case任何一条语句后面没有break的时候 是会继续执行的。


    邢慧雅 资深达人 3221天前

    回复 祁老师:我知道啊 但是case 2 中的2  是表示什么的  

    祁老师 人气红星 3221天前

    回复 邢慧雅:2表示x的值, 如果x初始值为2 那么就直接执行case 2 但是这里的x初始值为1 所以直接执行case 1 执行完case 1之后 这里没有break所以会继续执行case 2

    祁老师 人气红星 3221天前

    回复 邢慧雅:回头多看看视频吧, 你现在是这个switch的结构用法没有掌握哦

    邢慧雅 资深达人 3221天前

    回复 祁老师:哦哦 懂了 谢谢老师

    邢慧雅 资深达人 3221天前

    回复 祁老师:恩恩 

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题