求一个详细解析,感谢各位

这外层一个循环,内层两个怎么做?... 这外层一个循环,内层两个怎么做? 展开
 我来答
515621078
2022-06-13 · TA获得超过167个赞
知道小有建树答主
回答量:271
采纳率:86%
帮助的人:84万
展开全部

先分析第一个外层A循环
a=1; a<=3; a++,可以判断出循环时
A={1, 2, 3}

再看内部的B循环
b=1;b<=6 - 2*a; b++
这里可能比较令人难解的是a和b的对应关系,但这没关系,代数试一下
对于集合A每次执行时的6-2*a 返回的结果都是什么姑且定义为A'
则A' = 6-2*A = {6-2*1, 6-2*2, 6-2*3} = {4, 2, 0}
由于b的范围是动态的,b的自增规律是从1到A'对吧,
第一次A循环,B循环执行了4次,从1到4
第二次A循环,B循环执行了2次,从1到2
第三次A循环,B循环执行了0次,没问题吧?
所以三次A循环下来,B分别输出了4个空格,2个空格,和没有空格(用s代替空格) 如:
ssssxxxx,ssxxxx,xxxx
后边x表示另一个循环输出的结果
所以B的循环次数就是
B={4, 2, 0}

最后看C循环
从1到a对吧,那么对照一下C的循环和A的循环结果
A={1,2,3}
C={1,2,3,4.....}
可以看出如果A循环1次,则C也循环1次,因为1<=1。
如果A循环2次,C循环2次,因为2<=2,以此类推,
直到a的三次循环结束。
所以C的循环结果为
C={1, 2, 3}
看C输出什么?
printf("%c" 输出一个char,
输出的是 'A' + a - 1
已知 char 类型此时是可以作为数字进行运算的,
那么大写的A根据ASCII码表可知,
'A'+1 = 'B'
'B'+1='C'
以此类推
所以我们后边加的是什么呢?
'A' + a - 1
加a之后减一,那根据循环结果A来看
A-1 = {0,1,2} 对吧
所以分别输出的是 A,B,C

根据我们上述所有的结论来看,输出结果是
1.先输出 {4, 2, 0} 个空格
2.再输出 { {1个'A'}, {2个'B'}, {3个'C'} }
于是最终结果用s代替空格就是:
ssssA
ssBB
CCC

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式