#include<stdio.h>
main()
int k=0;
char c=’A’:
do
switch(c++)
case’A’:k++;break;
case’B’:k--;
case’C’:k+ =2;break;
case’D’:k=k%2;break;
case’E’:k=k*10;break;
default:k=k/3;
k++;
while(c<’G’);
printf("k=%d",k);
请问为什么结果是4呢 运行到D时k=1然后回到(c++)计算E对吗
不好意思啊 少打了大括号 麻烦您再看一下
追答一步一步往下算呗
A时 k++=1,break,k++=2
B时 k--=1,k+2=3,break,k++=4
C时 k+2=6,break,k++=7
D时 k%2=1,continue
E时 k*10=10,break,k++=11
F时 k/3=3,break,k++=4
之前说错了,没有G时,因为switch('F'++)之后,c已经是G了,后面while(c<'G')不成立
所以最后值为4
可是while不是循环结束才判断吗?
追答是,所以F++时,k=4就结束了