Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        在11个月前关闭。
                                                                                            
                
        
/通过参数监视,我看到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;
}

最佳答案

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

您可以修改代码以打印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;
}

10-06 13:48
查看更多