发布网友 发布时间:2022-05-16 02:20
共1个回答
热心网友 时间:2023-10-09 04:36
这样的代码光是看是很难看明白的,自己举个例子简单地在纸上写一写画一画,就比较容易明白了。追答size表示菱形的大小的,
*
***
*****
***
*
像上面的这个,当然,它不是空心的,这样看起来方便,里面换成空格看起来不明显。
size=5,表示有5行,最中间有5个字符。
第1行,i==0,需要输出2个空格,
第2行,i==1,需要输出1个空格
第3行,i==2,需要输出0个空格。
可以看出来,空格个数随着i的增加是每次递减1的。所以 j--(每次减1),
i==0时,j==2,j==1可输出2次空格,j==3,j==2也可(这种情况就是你发的代码里的 int j=size/2+1,j>i+1,j--),也可以写成(int j=size/2,j>=i+1;j--),只要能输出2次空格即可。
size/2其实是除了菱形中间那一行之外,上面一半的行数,也是第1行需要输出的空格数。
5/2=2,4/2=2,这样的能明白吧,只取结果的整数。
其实就需要一个实际的例子来计算i,j之间的关系。