【C语言问题】看不懂啊看不懂,求大神解释~!(循环内的逻辑)

【C语言问题】看不懂啊看不懂,求大神解释~!(循环内的逻辑)
(程序功能:从键盘上输入整数n,按示例格式输出一个由数字组成的三角形图案。)

#include
int main(void)
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>0;j--)
printf("%d",j);
printf("\n");
}
return 0;
}
如果能顺便总结一下打印图形题的规律就更好了~!会追加的哦~!O(∩_∩)O~
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

有什么猜唤问穗歼凯题可以改宽追问


← 上一篇: 下一篇: →