#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 码相同,所以会被同时整除。
如果我的回答解决了您的问题,请采纳我的回答