C语言经典例23-输出菱形图案

1 题目

打印出如下图案(菱形)。

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

2 分析

观察图案,共7行,其中前4行规律相同,后3行规律相同,那么在程序中,要分为两个部分来做,第一行发现三个空格一个星号,第二行两个空格三个星号,第三行一个空格四个星号,从中可以推算出空格个数、星号个数和行号的关系,由此才能利用循环输出图案,设行号从0开始编号,要注意的是空格和星号和行号的规律不相同,所以每行里面空格和星号分别要用一个for循环输出,最后不要忘了换行,具体规律见下面的程序

3 实现

#include <stdio.h>

int main() {
    // 输出前4行
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j <= 2-i; j++) {
            printf(" ");
        }
        for (int k = 0; k <= 2*i; k++) {
            printf("*");
        }
        printf("\n");
    }
    // 输出后3行
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j <= i; j++) {
            printf(" ");
        }
        for (int k = 0; k <= 4-2*i; k++) {
            printf("*");
        }
        printf("\n");
    }
  
}

4 运行结果

   *
  ***
 *****
*******
 *****
  ***
   *
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值