第六章pta练习表达式


#include 
int main(void)
{
    int c1 = 0, c2 = 0;
    char ch;                      
    
    while((ch = getchar()) != '#'){
        switch(ch){
              case 'a':
              case 'h': c1++;
              default: c2++;
        }
    }
    printf("c1=%d,c2=%d\n", c1, c2);   /* 中间、前、后都没有空格 */
    
    return 0;
}

为什么输出的c1=2,c2=5;

因为你的case没有加break跳出,所以当输入字符为‘a’或'h'时,c2++也会执行的

这段代码得到的结果,要看输入的是什么?如果有问题的话,就在switch(){case:}里每个case后面缺了break。

以下答案引用自GPT-3大模型,请合理使用:

,谢谢。

因为ch='a'和ch='h'的 ASCII 码相同,所以会被同时整除。

如果我的回答解决了您的问题,请采纳我的回答