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

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

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

c语言菱形金字塔,C语言打印菱形、金字塔_第1张图片

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

所以总结了下:

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

}

}

c语言菱形金字塔,C语言打印菱形、金字塔_第2张图片

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

c语言菱形金字塔,C语言打印菱形、金字塔_第3张图片

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

实现代码:

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

}

}

c语言菱形金字塔,C语言打印菱形、金字塔_第4张图片

你可能感兴趣的:(c语言菱形金字塔)