如何打印菱形|如何打印菱形 (for循环)

初学编程的时候(学到循环)遇到一个比较典型的问题:就是如何打印菱形,如下图:

*

***

*****

*******

*********

*******

*****

***

*

我们当然不能用printf来一行行打印,这样多笨,再说也为了理解for循环的意思,我们干脆用for循环来打印菱形。我们先来思考一个简单点的问题,比如要打印:

*

**

***

****

*****

我们怎么用for来实现呢?可以用一个for循环来打印多少行,一个for来打印星号就可以了。给出源程序如下:

#include

//#include



main()

{

inti,j;



//clrscr();

for(i=1; i<=5; i++){

for(j=1; j<=i; j++)

printf("*");

printf("\n"); }

}

也就是说一个for做了一件事情,虽然我们的菱形复杂得多,但我们认真在纸上划划分析一下,就不难发现规律:从第一行到第5行,星号得数目一直在增加,而到了第6行却开始减少。而且星号和两边的空格减少都是有规律可循的。再分析一下,我们要打印每行星号前面的空格不难,打印后面的空格却麻烦,但我们可以通过打印前面的空格和控制好星号的数目来完成菱形的打印(忽略每行星号后的空格),眉头一皱,计上心来:)完成这个任务分两步:一是打印前5行,用两个for来控制星号和空格;二是打印后4行,同样是用两个for来控制星号和空格。一共是6个for!进一步缕清思路,在前5行,ifrom1to5(用来控制行),jfrom4to0(用来控制空格,因为要先打印空格),kfrom1to9(用来控制星号,变化规律是从1到9);再来写后面的4行:mfrom1to4,nfrom1to4,ofrom7to1。再求精:前5行,分析变化规律:



ijk

1

    推荐阅读