#include<stdio.h>
void main(void)
{
int i, j,n,m;
scanf("%d %c",&n,&m);
for(i = 1; i <=n; i++) /* 外循环的次数为图案的行数 */
{
for(j = n-2; j >= i - 1; j--) /* 第1个内循环负责输出每行前的空格 */
{
printf(" ");
}
for(j = 1; j <= 2 * i - 1; j++) /* 第2个内循环负责输出每行中的* */
{
printf("%c",m);
}
printf("\n"); /* 负责换行 */
}
}
这一步里如果n是5的话,j=n-2,第一行不是应该有3个空格吗?这是为什么? for(i = 1; i <=n; i++),当n=5时,i<=5,那i为什么没有再加一次加到第六行?还有第一个内循环是怎么控制空格数量的?他只是会输出空格怎么还能知道在什么位置停止呢?求解释。。问题比较多,谢谢了。