提示里面说”空格数等于最后一行减去当前行再除以2“,这样算下来第一行空格为3个,然而实际程序里面“j=i;j<5”这里面j循环了4次,也就是说第一行空格应该是4个,这不是自相矛盾的吗?
题主观察细微,我也是看到提问才重新审视这个程序的。
这个程序的情况中第一行实际上有四个空格,是所有行都向前加了一个空格,这不影响形成三角星形的图形样子。
如下是每一行都向前加了一个空格的形状:
前面的空格数不能少于(最后一行星号数减去当前行星号数再除以2)即可
如下是 实际程序中 “j=i;j<4”的图形情况:(也就是题主说的第一行仅输出三个空格,没有每一行都向前加一个空格的情况)
前面是没有多余的空格的,紧靠着程序框。
也就是说,只要空格条件是大于(最后一行星号数减去当前行再除以2)都可以形成三角星号的图形,只不过统一在每行的前面多加了空格而已。
愿能在您C语言的学习上您有所帮助。
谢谢您的回答