打印输出菱形(C语言)


前言

打印输出菱形所遇到的多重循环问题


一、多重循环的执行结果是什么

外循环给定一值时,内循环将完整的执行一遍

二、遇到的问题

1.变量初值与条件判断如何设置

设置初值时应明白的简单逻辑:当i=0时,首先z会从1~9打印输出9个空格(z>i,所以z最后取1),然后y=0(y<=i)打印输出一个* ;当i=0时,首先z会从9~2打印输出8个空格(z>i,所以z最后取2),然后y=1(y<=i)打印输出两个* 。既每次i改变时,j与z完整的执行一遍

#include<stdio.h>
int main()
{
    int i,j,z;
    
        for(i=0;i<10;i++)
    {
        for(z=9;z>i;z--)
        printf(" ");
        
        for(j=0;j<=i;j++)
        printf("* ");
        printf("\n");
        
    }

    for(i=0;i<9;i++)
    {
        for(z=0;z<=i;z++)
        printf(" ");
        for(j=9;j>i;j--)
        printf("* ");
        printf("\n");
    }
    return 0;
}

2.变量设置

如下设置两组变量,分为菱形上下部分的两个循环,与1的代码可以实现等价的效果,但1会是更优的选择,所占内存与运行时间均较小。所以我们尽量只设置一组变量

#include<stdio.h>
int main()
{
    int i,j,z,i_,j_,z_;
    
        for(i=0;i<10;i++)
    {
        for(z=9;z>i;z--)
        printf(" ");
        
        for(j=0;j<=i;j++)
        printf("* ");
        printf("\n");
        
    }

    for(i_=0;i_<9;i_++)
    {
        for(z_=0;z_<=i_;z_++)
        printf(" ");
        for(j_=9;j_>i_;j_--)
        printf("* ");
        printf("\n");
    }
    return 0;
}


总结

1.了解多重循环的执行结果,懂得设置打印输出菱形的初值与条件判断

2.了解如何优化程序

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值