打印图形

1.编程,打印如下所示的图形

【解析】

对于这个图形首先我们通过观察可以发现这是一个对称的图形,以中间为对称轴,从上面看图形是依次递增,然后对称轴下面的图形是依次递减,所以我们可以分2部分来实现这个功能。

>打印上半部分,首先我们不管格式先把前四行的图形输出如下所示

这显然是通过循环来控制的,第一次循环输出一个*,然后是三个*......

这样我们可以写出下面的代码

#include<iostream>
using namespace std;
int main() {

	for(int i=1; i<=4; i++) {
		for(int k=1; k<=2*i-1; k++) {
			cout<<"*";
		}
		cout<<endl;
	}

}

>其次我们就要来输出它的格式了下面我们通过一张图来分析这个格式

可以看到第一行距离黑色的墙壁有3个空格,第二行2个,第三行1个,第四行0个。那么我们可以通过循环来控制这些空格的输入,比如有四行第一行就是4-i,i从1开始,代码如下

	for(int i=1; i<=4; i++) {
		for(int j=1; j<=4-i; j++) {
			cout<<" ";
		}
		for(int k=1; k<=2*i-1; k++) {
			cout<<"*";
		}
		cout<<endl;
	}

>接下来我们就要处理下半部分的图形,可以看到,下半部分的图形从5个*逐渐变为3个*一个*,显然要输出这个图形就是要输出3行,所以我们可以这样写

	for(int i=1; i<=3; i++) {
		for(int k=1; k<=i; k++) {
			cout<<" ";
		}
		for(int j=1; j<=7-2*i; j++) {
			cout<<"*";
		}
		cout<<endl;
	}

当然这里的空格输出与上面的相反了,所以我们按照上面的写法就可以了。

【完整代码】

#include<iostream>
using namespace std;

int main() {

	for(int i=1; i<=4; i++) {
		for(int j=1; j<=4-i; j++) {
			cout<<" ";
		}
		for(int k=1; k<=2*i-1; k++) {
			cout<<"*";
		}
		cout<<endl;
	}
	for(int i=1; i<=3; i++) {
		for(int k=1; k<=i; k++) {
			cout<<" ";
		}
		for(int j=1; j<=7-2*i; j++) {
			cout<<"*";
		}
		cout<<endl;
	}

}

【运行结果】

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值