用c语言编写星型金字塔

Python012

用c语言编写星型金字塔,第1张

#include<stdio.h>

void main()

{

int a=0,b=4,c=1,d

for(a=0a<3a++)

{

for(d=0d<4d++)putchar(' ')

for(d=0d<cd++)putchar('*')

for(d=0d<4d++)putchar(' ')

b-=2

c+=2

}

}

考虑到如果输入太大的数字,那么产生的金字塔形状必然乱套,因为屏幕输出不了那么多,所以限制用户输入1-20之间的数字。不想限制的话,把1-20判断语句去掉即可。

本例的范围使用30,是让大家看一下超出范围的输出。。。

/*输出数字金字塔*/

#include <stdio.h>

int main()

{

int number, lnumber, rnumber

int rows,blank

printf("Please input a number between 1 to 30:")

scanf("%d", &number)

while ( (number <0 || number >30) )

{

printf("Input wrong number! Please input again:")

scanf("%d", &number)

}

{

rows = (number - 1)

for (rowsrows >= 0rows--)

{

for (blank = rowsblank >= 0blank--)

printf(" ")

for (lnumber = 1lnumber <= (number - rows)lnumber++)

{

printf("%d ", lnumber)

}

for (rnumber = (number - rows - 1)rnumber >= 1rnumber--)

{

printf("%d ", rnumber)

}

printf("\n")

}

}

}

代码如下, 可以通过修改上面#define的ROW和CHAR控制行数以及打印的字符

#include <stdio.h>

#define ROW 5

#define CHAR '*'

int main()

{

    int i, j

    for (i = 1 i <= ROW ++i)

    {

        // 输出ROW-i个空格

        for (j = 0 j < ROW-i ++j)

            putchar(' ')

        // 输出2i-1个字符

        for (j = 0 j < i*2-1 ++j)

            putchar(CHAR)

        // 换行

        putchar('\n')

    }

    return 0

}