C语言for循环加switch循环?

这个鬼题目搞得我有点懵,大佬讲解麻烦先说一下执行顺序。老师给的答案说是0422

s[]里面的数都是1或2或3,而switch(s[k])里的case 正好是1,2,3,所以s[]里的数一共有8个,肯定会执行8次switch(s[k]),并且case 1, case 2后面都没有break,所以肯定会执行case 3,所以x[s[k]]++就相当于要嘛 s[1]++ ,要嘛s[2]++,要嘛s[3]++,s[0]则不变还是0,所以s[]里几个1,x[1]就是几 ,x[2],x[3]同理,4个1,2个2,2个3,不就是0422吗!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-18
k等于0,3,5,6时,都执行1次x[1]++;
所以x[1]等于4。

k等于1,4时,都执行1次x[2]++;
所以x[2]等于2。

k等于2,7时,都执行1次x[3]++;
所以x[3]等于2。

所以输出:
0 4 2 2(最后一个2后有一个空格)。
相似回答