这是一个金字塔循环,是C语言中一个经典的编程。
这个程序用三个循环控制了三个变量,
首先是个大循环,for(i=1;i<=3;i++) 这个循环控制的是行数,一共有3行。
再是加两个循环,for(j=1;j<=3-i+5;j++) 这个循环控制的是每一行前的空格数,
当i=1时,前面的空格是3-1+5=7个,加上它是使个循环,从1它自加到7,所以第一行有7个空格。
当i=2时,前面的空格是3-2+5=6个,~~~~~~~~~~~~~~~~~~从1自加到到6,所以第二行有6个空格。
后面是一个道理。
for(k=1;k<=2*i-1+5;k++) 这个是控制每一行有多少个“*”,但在里面还有个条件语句进行控制。
当i=1时,“*”有2*1-1+5-=6个,但后面还有个条件语句,if(k<=5) printf(" "); else printf("*")
说明的是当k小于或等于5时前面都是空格, 所以第一行只有一个“*”。
当i=2时,同理,第二行就有两个“*”了。
其实后面的那个条件语句可以改改不需要,直接用三个循环还方便些,你可以自己试试。