关于C语言FOR 语句的 问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 23:10:36
#include"stdio.h"
main()
{int i,j;
for(i=0;i<=4;i++)
{for(j=0;j<=4-i;j++)
putchar(' ');
for(j=1;j<=2*i-1;j++)
printf("%d",i);
printf("\n"); }
}
大家看下这个程序 我想问下为什么会输出
1
222
33333
4444444
这程序到底什么意思啊 好像和结果根本不沾边
由于我是初学者 且上课没认真听 完全不懂 希望能有高手能给我解释每一条句子的意思 能把来龙去脉说清楚 谢谢

这是一道for循环语句的嵌套问题。
for(i=0;i<=4;i++)这条语句中,当i=0继续执行下面花括号里面的语句
{for(j=0;j<=4-i;j++)
putchar(' ');
for(j=1;j<=2*i-1;j++)
printf("%d",i);
printf("\n"); }
当i=1时再执行下面花括号里面的语句
{for(j=0;j<=4-i;j++)
putchar(' ');
for(j=1;j<=2*i-1;j++)
printf("%d",i);
printf("\n"); } 在执行一遍,就这样一直到i不满足i<=4这条件时,程序结束。

下面我一步一步解释给你:
当i=0时,先执行for(j=0;j<=4-i;j++) 因为i=0那么这条语句为for(j=0;j<=4;j++) ,既循环执行5次每一次打印一个空格(putchar(' '); 是输出一个空格的意思)一共打印出5个空格。再执行for(j=1;j<=2*i-1;j++) 这条语句同样因为i=0那么这条语句为for(j=0;j<=-1;j++),此循环从j=0开始就不满足j<=-1,所以下面的语句不执行。

当i=1时,先执行for(j=0;j<=4-i;j++) 因为i=1那么这条语句为for(j=0;j<=3;j++) ,既循环执行4次每一次打印一个空格(putchar(' '); 是输出一个空格的意思)一共打印出4个空格。再执行for(j=1;j<=2*i-1;j++) 这条语句同样因为i=1那么这条语句为
for(j=0;j<=1;j++)然后打印出此时i的值(printf("%d",i);),再打印换行(printf("\n");) 。

同理i=2,