刚开始学c语言遇到小问题不知道怎么办

刚开始c语言学到这个switch语句标准输入输出库好像出了点小问题不知道是怎么个情况望解答

img

img

供参考:

img

第一 你用的switch...case 还需要有一个default作为标准的switch结构
第二 你用的printf好像是要加双引号

  • 建议你看下这篇博客👉 :声明不能包含标签 运用switch结构出现的错误
  • 除此之外, 这篇博客: 【C语言】分支语句与循环语句中的 switch语句 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • swith语句也是一种分支语句,常常用于多分支的情况。

    swith语句的结构是:

    switch(整形表达式

    {

    语句项;

    }

    语句项是什么呢?

    是一些case语句

    case 整型常量表达式:

                  语句;

    例:输入1-7的数字,分别代表对应的星期。那用ifelse语句会比较麻烦,那我们就得有不一样的语法格式,这里运用的就是swith语句。

    如下图一,运用switch语句写出,可以看到当我输入1的时候,输出了星期一,但是也继续输出到星期天的值。是因为case 1语句执行完,没有阻止语句停下来,语句会一直执行,直到把case语句执行完。当输入2,是什么结果。结果如下图2,可以看到当输入2的时候,语句从case 2进去,跳过case 1。switch后面的表达式结果是几,就会从case 几进去。

    那我们要达到分支的结果,就必须有入口和出口,case决定入口,那出口,我们可以加上break,break叫跳出,停止。那我们在每一个case后面加上break,看看效果是什么。可以看到图三,当我输入1,结果就是星期一。

    图一

    图二

    图三

    case后面的break不是必须要加的,按题目的需求来加。break语句的实际效果是把语句划分成不同的部分。

    例:现在输入1-5是工作日,6-7是休息日。

    default子句

    当表达的值与所有的case标签的值都不匹配。所有的语句都被跳过,程序结果不会报错,但是,不想忽略不匹配所有标签的表达式的值时,我们可以增加一条default子句。

    default子句可以放在switch语句中的任意位置 。但默认在所有case语句之后。