打印多层金字塔 (15 分)

本文介绍了一个C语言程序,该程序能够根据用户输入的层数和每层的小金字塔行数来打印出由星号(*)组成的多层金字塔形状。通过循环结构控制每一层金字塔的输出,并考虑了不同层间的空白字符填充。

打印多层金字塔 (15 分)

本题目要求读入2个整数n和m,m表示小金字塔的行数,n代表大金字塔的层数。然后输出多层金字塔。

输入格式:

在一行中层数n和 小金字塔的行数m。

输出格式:

对每一组输入,显示对应的图案

输入样例:

在这里给出一组输入。例如:

2 3

输出样例:

在这里给出相应的输出。例如:

     *
    ***
   *****
  *     *
 ***   ***
***** *****


#include <stdio.h>

#include <stdlib.h>

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    int spaceNum = n*m;
    int layer;
    for(layer = 1; layer<=n; layer++){
        //printf("第%d层", layer);
        int line;
        for(line = 1; line<=m; line++){
            ///printf("第%d行 前导空白",line);
            spaceNum --;
            int space;
            for(space=1; space<=spaceNum; space++){
                printf(" ");
            }


            ///printf("第1个塔 的第%d行",line);
            int star;
            for(star = 1; star <= line*2-1; star++){
                printf("*");
            }
            int tower;
            for(tower = 2; tower<= layer; tower++){
                ///printf(" 第%d行 中间空白",line);
                int spaceNum = 2*m - 2*line +1;
                int space;
                for(space = 1; space<=spaceNum; space++){
                    printf(" ");
                }

                ///printf(" 第%d个塔 的第%d行", tower, line);
                int star;
                for(star = 1; star <= line*2-1; star++){
                    printf("*");
                }
            }
            printf("\n");
        }
        //printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值