金字塔与空心金字塔的实现

题目:金字塔与空心金字塔的实现;

//     *               
//   ***                 
//  *****               
// *******             
//*********

通过观察我们发现:第1行1个*,4个空格 ,2行3个*,3个空格 ,3行5个*,2个空格 ,4行7个*,1个空格.根据*号和空格的出现次数,我们可以发现规律:* = 2*i -1,空格 = level - i;

金字塔代码:

#include <stdio.h>
int main()
{
	int i,j,k,level=8;
	for(i=1;i<=level;i++)
	{
		for(j=1;j<=level-i;j++)
		{
			printf(" ");
		}
		for(k=1;k<=2*i-1;k++)
		{
			printf("*");
		}
		printf("\n");每次内循环一行后,换行
	}
	return 0;
}

代码效果:

 

空心金字塔:

//空心金字塔 
//    *              第1行1个*,4个空格 
//   * *               2行2个*,3个空格 
//  *   *              3行2个*,2个空格 
// *     *             4行2个*,1个空格 
//*********           第五行没有空格

程序分析:我们前面第一个for循环不用改变,在第二个for循环里面加一个判断语句,我们由空心金子塔可以看出,每层的第一个和最后一个有*,其他地方都是空格,当然最后一层除外,这时候我们加个if-else语句,判断一下该位置是否是第一个或者该层的最后一个,如果是输出*,不是输出空格

代码实现:

#include <stdio.h>
int main()
{
	int level=9,i,j,k;//i表示层数 
	for(i=1;i<=level;i++)
	{
		for(k=1;k<=level-i;k++)
		{
			printf(" ");
		 } 
		for(j=1;j<=2*i-1;j++)
		{
			if(j==1||j==2*i-1||i==level)
			{
				printf("*");
			}
			else
			{
				printf(" ");
			}	
		}
		printf("\n");
	}
	return 0;
}

代码效果:

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱德苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值