如何来完成一个菱形图案的打印呢?首先我们把它简单的看成两个三角组成的图案
,分为上下两部分,我们先来完成上半部分,首先肯定是一行一行来打印,为了后期维护方便我们用循环来完成,我们输入几行就打印几行。
那一行由什么组成的呢?是用空格和星号来组成的,我们先来第一步打印空格,我们经过发现,这个空格是有规律的我们假设输入了7行那第一行空格是6个第二行是5个第三行4个,那么我们就可以算出,一个公式,每次打印line减1行,为了让他可以继续往下减所以我们根据i的变化来完成,那么就是line减1减i就能得出每行打印几个空格。
下一步打印星号,根据观察我们发现星号也是有规律的,第一个打印一个第二行打印三个,以此类推,我们就可以得到,2乘i加1就能得出星号的规律,i等于零打印一个,i等于1打印三个,完美的完成了这个任务,然后每行打印完要换行,上半部分就打印完了。
那下半部分和上半部分其实是一样的,那我们可以直接把上半部分复制粘贴下来,改一下条件就可以使用了。根据观察下半部分的行数是比上半部分少一行的,所以行数减一就行,空格的判断条件我们来看一下,第一行是一个第二行是两个,以此往下类推,那么我们可以直接用i来判断,i等于0打印一个i等于1打印两个。
最后我们来观察一下星号的规律,第一行是11个第二行是9个,那我们是不是可以看做11是2*6-1得到的9就是2*5-1得到的,那这个6是怎么得到的呢?line减1得到的6,那么我们就可以算出2*(line-1),那为了让他可以变化,我们再给他减上一个i得出2*(line-1-i),最后我们在给他减上一个一就是我们需要的数字了,2*(line-1-i)-1,至此下半部分也完成了,那么一个完整的菱形就可以打印出来了。
完整代码。
标签:空格,星号,打印,C语言,图案,菱形,上半,line,我们 From: https://blog.51cto.com/u_16103543/7140811