C语言学习笔记——循环嵌套——输出任意阶数空心菱形

C语言学习笔记——循环嵌套——输出任意阶数空心菱形

以4阶空心菱形为例,输出效果如下:

L1  000*
L2  00*0*
L3  0*000*
L4  *00000*
L5  0*000*
L6  00*0*
L7  000*
空格由0代替

1.图形分析:

前三行与后三行镜像,前置空格3,2,1递减,中间空格1,3,5递增。

2.循环分析:

L1  123*    x=0 y=1to3 z=0   
L2  12*1*   x=1 y=1to2 z=1
L3  1*123*  x=2 y=1    z=3
L4  *12345* x=3 y=0    z=5

x控制换行,y控制前置空格,z控制中间空格。
通过增加判断条件,输出*。

3.代码

#define JS 4  //定义阶数
#include<stdio.h>
void main()
{
    int x,y,z;
    for(x=0;x<=JS-1;x++)//x=0to3换行4次
        {
            for(y=x;y<=JS-2;y++)//x=0,y=0to2,输出3次;x=1,y=0to1,输出2次;x=2,y=2,输出1次;x=3,y不输出
                {
                    printf(" ");            
                } 
            printf("*");       
            for(z=2*x-1;z>=1;z--)//x=0,z=-1,不输出;x=1,z=1,输出1次;x=2,z=3,输出3次;x=3,z=5,输出5次
                {
                    printf(" "); 
                }
            if(x>0{
                    printf("*");    
                }    
            if(x<JS-1)
                {
                    printf("\n"); 
                }
              
        }
        printf("\n");
//反向输出
       for(x=JS-2;x>=0;x--)//x=0to2,换行3次
        {
            for(y=x;y<=JS-2;y++)
                {
                    printf(" ");            
                } 
            printf("*");       
            for(z=2*x-1;z>=1;z--)
                {
                    printf(" "); 
                }
            if(x>0)
                {
                    printf("*");    
                }    
            if(x<JS)
                {
                    printf("\n"); 
                }
              
        }
         
    system("pause");
}    
   
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值