zoukankan      html  css  js  c++  java
  • 总结:双重for循环打印类三角形的图形

    1,外层控制行数,内层控制列数。

    2,当列数与行数挂钩时:

      先判断行数与要打印的东西有无关系,

      若有,依情况分析。(如 九九乘法表)

    int main(void)
    {
        //1*1在左上角
        for (int i = 1; i <= 9; i++)
        {
            for (int j = 1; j <= i ; j++)
            {
                printf("%dx%d=%d ", j, i, i*j);
            }
            printf("
    ");
        }
    
        //1*1在左下角
        for (int i = 9; i >= 1; i--)
        {
            for (int j = 1; j <= i ; j++)
            {
                printf("%dx%d=%d ", j, i, i*j);
            }
            printf("
    ");
        }
    
        //1*1在右上角      
        for (int i = 1; i <= 9; i++)  
        {
            for (int j = 9; j >i; j--) //打印空格   
            {
                printf("	"); 
            }
            for (int k = i; k >= 1; k--) //打印式子      
            {
                printf("%dx%d=%2d  ", i, k, i*k);
            }
            printf("
    ");
        }
    
        //1*1在右下角
        for (int i = 9; i >= 1; i--)
        {
            for (int j = 9; j > i; j--) //打印空格      
            {
                printf("	");
            }
            for (int k = i; k >= 1; k--) //打印式子      
            {
                printf("%dx%d=%2d  ", i, k, i*k);
            }
            printf("
    ");
        }
    
        system("pause");
    }

     就像里面的    //1*1在左下角  外层循环初始条件已经被限定为 9了。

      若无,本人习惯 默认外层循环递增(当然也可以外层循环递减,只是内层循环要反过来)

      于是,若无

        1,控制列数递增。

          首先,外层循环递增,设好内层循环变量,再让内层循环的结束条件与外层循环变量挂钩。然后内层循环变量递增

        2,控制列数递减。

          首先,外层循环递增,设好内层循环变量,再让内层循环的结束条件与外层循环变量挂钩。然后内层循环变量递减

     //       *
     //     * * *
     //   * * * * *
     // * * * * * * *
     //   * * * * *
     //     * * *
     //       *
    int main(void)
    {
        int i = 0;
        int j = 0;
        int k = 0;
        for (i = 0; i < 4; i++)    //4代表有4行
        {
            for (j = 0; j < 7-2*i; j++)   //7代表第一行有7个    2代表每行差2个
            {
                printf(" ");
            }
        // for (j = 7 - 2 * i - 1; j >= 0; j--) //当然,初始条件不同,自然是要反过来
         // {
          //  printf(" ");
          // }
    for (k = 0; k < 1 + 2 * i; k++) { printf("* "); } printf(" "); } for (i = 0; i < 3; i++) { for (j = 0; j < 3+2*i; j++) { printf(" "); } for (k = 0; k <=4-2*i; k++) { printf("* "); } printf(" "); } system("pause"); return 0; }

     注意这里与九九的区别,这里的递增是递增2的,对此可以控制循环增量,我用的是控制终止条件。

    另外是打印随意行数菱形(有奇数偶数之分):

    int main(void)
    {
        int n;
        while (scanf("%d", &n) != EOF)
        {
            int m = (n + 1) / 2;
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= m - i; j++)
                {
                    printf("  ");
                }
                for (int k = 1; k < 2 * i; k++)
                {
                    printf("* ");
                }
                printf("
    ");
            }
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= i - (n + 1) % 2; j++)
                {
                    printf("  ");
                }
                for (int k = 1; k < 2 * m - 2 * i + 2 * ((n + 1) % 2); k++)
                {
                    printf("* ");
                }
                printf("
    ");
            }
    
        }
        
        system("pause");
        return 0;
    }

     ========= ======== ====== ====== ====== ===== ==== === == =

     心,若没有栖息的地方,到哪里都是流浪

                    —— 三毛

         

      

      

      

  • 相关阅读:
    20、【Linux系统编程】 exec系列函数
    3、【Linux网络编程】socket实例
    c++ 二分答案(基础应用)
    c++ 迷宫搜索(宽搜)
    c++ 广度优先搜索(宽搜)
    栈的概念
    c++ 栈的基本应用
    队列的概念
    c++ 队列的基本应用
    Knight Moves
  • 原文地址:https://www.cnblogs.com/asdfknjhu/p/12113831.html
Copyright © 2011-2022 走看看