zoukankan      html  css  js  c++  java
  • c语言实践 打印三角形

    效果如下:

    我是怎么考虑这个问题的。

    首先共有5行,那么我们需要一个循环,让这个循环走5遍。

    那么我们有个大概的代码结构

    for(int i=0;i<5;i++)

    {

    }

    i的定义域是[0,4]之间的整数,共5个数,所以循环5次。

    接下来再考虑,第一次循环输出一个星,后面几次循环输出的星越来越多,所以输出多个星也是需要一个循环的,

    for (int i=0;i<5;i++)

    {

      for(int j=0;jxxx;j++)

      {

        printf("*");

      }

      printf(" ")

    }

    为什么会想到j=0?和j++因为我能猜到里层循环的循环体是每次画一个星的,而且外层循环多循环一次,那么里层循环的星星就多一点。既然j是控制里层循环的,那么j的值肯定是从一个比较小的数慢慢增长起来的,那么我们就设j的初始值是0,j每次增加1。

    再看题目可以发现,第一次外层循环的时候需要输出一个星,那么意味着里层循环只能执行一次,现在j的值已经是0了,我们给j一个什么条件才能让j的定义域只能是0这一个整数呢?是不是j<1,如果j=0,j<1成立的话,那么j只能取到0,即只能循环一次。

    那么我们把程序写成这样行不行?

    for(int i=0;i<5;i++)

    {

      for(int j=0;j<1;j++)

      {

      printf("*");

      }

      printf( );

    }

    这样的话,外层循环每循环一次,里层循环都只能输出一个星,这是不对的。

    我们再看第二行,是需要输出两个星的,意思是让里层循环执行2次,那么需要j<2,对吧,int j=0 ;j<2,j++

    j的定义域是0 1 这两个数,意味着要输出两个星。而此时i的值是1

    好像发现了一个规律

    i=0时 j<1就可以输出一个星

    i=1时 j<2就可以输出两个星

    1和2好像和i的值有某种关系? 对,j<i+1;

    所以我们代码就成功了。

    int main(void)
    {
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < i+1; j++)
            {
                printf("*");
            }
            printf("
    ");
    
        }
    
    
    
        return 1;
    }
  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/yfish/p/9710405.html
Copyright © 2011-2022 走看看