C语言打印菱形、金字塔

今天又看了下刚学C语言时的一些程序,其中有一个打印菱形的。


其目的是程序接收一个整型数字,比方说4,则打印出下面的图案:



虽然知道整体思路,但还是花了十几分钟才把代码写好。(可能是思路不明确,没有思考好流程步骤造成的)

所以总结了下:

1.实际上就是打印空白及“#”号

2.一行一行的打印

3.分成上半部分及下半部分


再者就是最重要的,每一行打印的空白及“#”号的个数是多少。


看图形后,不难发现:(以n=4为例)

第一行:从第5个开始打印"#",也就是说前面打印了4个空白

第二行:从第4个开始打印"#",也就是说前面打印了3个空白

第三行到第五行依次类推。

以上是上半部分。



从第六行:刚好与上半部分相反。

一直到第九行打印完毕。


上述过程可以定义两个变量i,j来实现对打印数量的控制。


代码如下:

#include <stdio.h>

void main( )
{
	int i, j, n;
	printf( "Input\nPlease input n: \n" );
	scanf( "%d", &n );
	printf( "Output:\n" );
	for( i = 1; i <= n + 1; i++ )
	{
		for( j = 1; j <= n + 1 - i; j++ )
			printf( " " );
		for( j = 1; j <= 2 * i - 1; j++ )
			printf( "#" );
		printf( "\n" );
	}
	for( i = n; i > 0; i-- )
	{
		for( j = n - i; j >= 0; j-- )
			printf( " " );
		for( j = 2 * i - 2; j >= 0; j-- )
			printf( "#" );
		printf( "\n" );
	}	
}






接着逛贴吧时又看到了一个打印金字塔的帖子。



其实这种程序原理都是一样,就是利用变量控制打印空白及符号。


实现代码:

#include <stdio.h>

void main( )
{
	int i, j, n = 4;
	for( i = 1; i <= n; i++ )
	{
		for( j = 1; j <= 2 * ( n - i ); j++ )
			printf( " " );
		for( j = 1; j <= 2 * i - 1; j++ )
			printf( "*" );
		printf( "\n" );
	}
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值