C语言学习笔记:for循环和打印等腰三角形(*)

首先我们来看一下for循环的语句结构:

for(声明数据类型1 ;循环的条件2;执行语句3)

{

执行语句4

}

for循环的执行顺序时 1  2  4  3   2  4  3  2  4  3 ……,在判断循环的条件2符合后,执行语句4,执行完4语句后再执行3,然后再次判断是否符合条件

接下来我们试着打印5个 * 试一下

在这个for循环内,声明了整型变量i,初始化i为0,当i<5时,执行打印 * 的语句,然后i++,i由0 变为1 ;(i++ 即后加加,原理是:先自增,然后返回自增之前的值   ++i 即前加加,原理是:先自增,然后返回自增之后的值)然后在此循环。

然后我们看一下打印等腰三角形的结果

在这里我们需要思考的是,什么时候打印 * 什么时候打印换行,通过上面打印5个 * 可以看出单一for循环就可以控制一行打印多少,那么我们就需要嵌套for循环来控制打印几行,下面是代码:

我们首先声明一个整型变量c来存储用户想打印的等腰三角形的行数(腰长);

我们先看变量为 J  的循环,我们需要在这个循环内解决每行打印几个的问题,我们先思考第一行,如果我们输入的c = 3,则最下面一行有5个 *  第二行则有 3个 * 号 ,第一行有1个 * 号,我们可以看出 如果是c = 4,从下到上则是7、5、3、1

我们可以思考出第一行的打印位置是当j = c时打印,第二行打印的3个则是再 c位置的左右两侧 1位,第三行则是 c位置的左右两侧两位,以此类推我们可以知道:

打印起始位置:c-(行数-1);打印终点位置:c+行数-1,(也就是 c-i  到  c+i  下面有解释)

然后我们再看外层的 i 循环,如果我们在 J 循环结束后打印一个换行(printf("\n");,那么这层循环控制的就是行数,因为是从0开始那么打印多少行的判断条件就是 i<c;

我们在将上面两个综合考虑,

打印第一行时,i=0,在c的位置打印一个 *

打印第二行时,i=1,在c-1到c+1的三个位置上打印*

打印第三行时,i=2,在c-2到c+2的三个位置上打印*

……

由此我们可以知道在每行打印的数目就可以通过c和i来控制

那么我们在c-i前打印空格就可以达到我们的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值