c - 如何正确修改以下 "switch"语句以获得预期的输出值

标签 c

/我看到k的结果通过参数观察是4,但程序结束后最终结果是123。这是为什么?/

/感谢您的回答。 我之前的困惑我已经说清楚了。 事实上,这是一个考试中询问输出的问题。我在考试中错了,因为我认为输出是 1,但正确答案是 123。 也许这就是指令不清楚的原因。/

#include <stdio.h>
int main()
{
    int k;
    scanf("%d", &k);
    switch (k)
    {
    case 1:   printf("%d", k++);
    case 2:   printf("%d", k++);
    case 3:   printf("%d", k++);
        break;
    default:  printf("Full!");
    }
    return 0;
}

最佳答案

您的代码中没有最终结果:在switch之后不使用k,因此它在调试器中的值毫无意义。

您可以修改代码以打印 k 的最终值,并会看到 123 转换为 4,所有其他值保持不变。

#include <stdio.h>

int main() {
    int k;
    scanf("%d", &k);
    switch (k) {
      case 1:   printf("%d\n", k++);
      case 2:   printf("%d\n", k++);
      case 3:   printf("%d\n", k++);
        break;
      default:  printf("Full!\n");
        break;
    }
    printf("%d\n", k);
    return 0;
}

关于c - 如何正确修改以下 "switch"语句以获得预期的输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55203410/

相关文章:

c - 区分socket上的接收文件

c++ - 为什么 _ftscanf_s 会抛出异常而 _ftscanf 不会?

c - 串行通讯不工作。读取文件出错

c - 接收UDP数据报并解析源端口

c - 为什么在多项式加/多源代码中使用指向结构的指针

c - 优化 maC,性能)——跟进 bit-twiddling 问题

c - else if 语法错误?谁能帮忙找一下

内存中 char 指针的 C 字节

C 编程 : Name arranger! 编码新手?

c - p.a 和 p->a 有什么区别,其中 p 是指针?