c语言菱形金字塔,C语言打印菱形、金字塔

本文回顾了如何使用C语言实现打印菱形和金字塔的程序,通过理解打印空格和字符的控制,展示了变量i和j在控制行数和空格数量上的应用。作者分享了这两个经典问题的解决思路和代码实例,适合初学者巩固循环和条件控制的理解。
摘要由CSDN通过智能技术生成

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

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

ec7165b05640c0fe2837f4c01af51641.png

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

所以总结了下:

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

2.一行一行的打印

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

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

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

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

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

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

以上是上半部分。

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

一直到第九行打印完毕。

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

代码如下:

#include 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" );

}

}

90a0588445d49337a17b48cd2a2672ca.png

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

1f2a9c119c6aef4c948f4b393e825054.png

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

实现代码:

#include 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" );

}

}

2968797a604b468c2532b7dace3b609a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值