#include<stdio.h> main() int k=0; char c=’A’:

#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对吗

要么是你代码写错了,要么是你结果算错了,而且看不出来你的k++想要放在哪,暂且当做default语句块中
A时 k=1
B时 k=2
C时 k=4
D时 k=0
E时 k=0
F时 k=1
因while在后,继续执行一次
G时 k=1追问

不好意思啊 少打了大括号 麻烦您再看一下

追答

一步一步往下算呗
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就结束了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答