switch-case分支结构

img


如果一定要用char数组来进行输入,那case那里可以直接用“星期一”吗。
如果不用char数组,那应该用什么类型

case ‘星期一'肯定不行啊
首先,星期一是字符串,必须用双引号,单引号里只能是单个字符
其次,case只能是整型值,不可以是字符串。
上面的scanf也是错的,输入字符串要写成 scanf("%s",week);

#include <stdio.h>
int main()
{
    char week[20] = {0};
    char *w[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
    int i=0;
    scanf("%s",week);
    for(i=0;i<7;i++)
        if(strcmp(w[i],week) == 0)
            break;
    switch(i)
    {
          case 0:  //星期日
               printf("地三鲜");
               break;   
          case 1:  //星期一
               printf("干煸豆角");
               break;     
    }
}

不能行的,你的格式会报错,不符合c的规则
应该在用case的时候,改成这样
case 0: printf("星期一"); break:;

这篇文章讲的很详细,请看:switch case中变量定义问题