for(i=1; i<=n; i++)
{
1. for(j=1; j<=n-i; j++)
2. printf(" "); //这两句是打印n-i个空格
3. for(j=1; j<=i; j++)
4. printf("%d", j); //这两句是打印从1到i这几个数
5. for(j=i-1; j>0; j--)
6. printf("%d", j); //这两句是打印从i-1到1这几个数
7. printf("\n") //换行
}
所以,
对于外层循环for(i=1; i<=n; i++), 假如n=5
当i=1时, 1和2两句先打印4个空格,然后3和4两句打印1,之后5和6两句不打印,不符合循环条件,最后换行。
当i=2时, 1和2两句先打印3个空格,然后3和4两句打印1,2,之后5和6两句打印1,最后换行。
当i=3时, 1和2两句先打印2个空格,然后3和4两句打印1,2,3,之后5和6两句打印2,1,最后换行。
按照上面步骤依次类推,直到不符合循环条件。
第一次循环是打印的行数
第二次循环是打印的空格
第三次就是打印的内容了
假设n=3;那就打印三行
第一行有2格空格 第二行有1格空格 第三行有0格空格
下面就开始打印内容了 第一行打印1
第二行是121
第三行是12321
有什么问题可以追问