嵌套循环之打印图形

单层循环 -> 之心
双层循环

输出菱形

1.输出菱形

#include <iostream>
using namespace std;

int main()
{
    
    
    //外层循环控制行,内层循环控制列
    //上半部分
    for(int i=0; i<4; i++)
    {
    
    
        for(int j=0;j<=2-i;j++)
       {
    
    
           cout<<" ";

       }
        //打印三角形的关键是讨论i和j的关系
       for(int j=0;j<=2*i;j++)
       {
    
    
           cout<<"*";
       }
       cout<<endl;

    }
    
    //下半部分
    for(int i=0; i<4; i++)
    {
    
    

       //下半部分
         for(int j=0;j<=i;j++)
       {
    
    
           cout<<" ";
       }
       for(int j=0;j<=4-2*i;j++)
       {
    
    
           cout<<"*";
       }
       cout<<endl;
    }
    return 0;
}

输出:

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

2.菱形的进阶
以字母输出菱形:

#include <iostream>
using namespace std;

int main()
{
    
    
    char shap='A';
    //外层循环控制行,内层循环控制列
    //上半部分
    for(int i=0; i<4; i++)
    {
    
    
        for(int j=0;j<=2-i;j++)
       {
    
    
           cout<<" ";

       }
        //打印三角形的关键是讨论i和j的关系
       for(int j=0;j<=2*i;j++)
       {
    
    
           cout<<shap;
       }
       cout<<endl;
       shap++;

    }

    //下半部分
    for(int i=0; i<4; i++)
    {
    
    

       //下半部分
         for(int j=0;j<=i;j++)
       {
    
    
           cout<<" ";
       }
       for(int j=0;j<=4-2*i;j++)
       {
    
    
           cout<<shap;
       }
       cout<<endl;
       shap++;
    }
    return 0;
}

输出:

   A
  BBB
 CCCCC
DDDDDDD
 EEEEE
  FFF
   G

3.挖空的菱形
将中间的 * 换成 空格:

#include <iostream>
using namespace std;

int main()
{
    
    
    char shap='A';
    //外层循环控制行,内层循环控制列
    //上半部分
    for(int i=0; i<4; i++)
    {
    
    
        for(int j=0;j<=2-i;j++)
       {
    
    
           cout<<" ";

       }
        //打印三角形的关键是讨论i和j的关系
       for(int j=0;j<=2*i;j++)
       {
    
    
           if(j==0||j==2*i)
           cout<<shap;
           else cout<<" ";
       }
       cout<<endl;
       shap++;

    }

    //下半部分
    for(int i=0; i<4; i++)
    {
    
    

       //下半部分
         for(int j=0;j<=i;j++)
       {
    
    
           cout<<" ";
       }
       for(int j=0;j<=4-2*i;j++)
       {
    
    
           //边缘部分输出*,中间部分输出空格
           if(j==0||j==4-2*i)
           cout<<shap;
           else cout<<" ";
       }
       cout<<endl;
       shap++;
    }
    return 0;
}

输出:

   A
  B B
 C   C
D     D
 E   E
  F F
   G

输出矩形

空心矩阵

#include <iostream>
using namespace std;

int main()
{
    
    
    for(int i=0; i<=10; i++)
    {
    
    
        for(int j=0; j<=10; j++)
        {
    
    
            if(i==0||i==10||j==0||j==10)
            cout<<"*";
            else cout<<" ";
        }
        cout<<endl;
    }

    return 0;
}

输出:

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

输出0

#include <iostream>
using namespace std;

int main()
{
    
    
    //上半圆
    for(int i=0; i<2; i++)
    {
    
    
        for(int j=0; j<3-i; j++)
        {
    
    
            cout<<" ";
        }
        //打印三角形的关键是讨论i和j的关系
        //10-2*(3-i) 即 4+2*i
        for(int j=0; j<4+2*i; j++)
        {
    
    
            if(i==0||j==0||j==3+2*i)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;

    }


    //中间矩形
    for(int i=0; i<6; i++)
    {
    
    
        for(int j=0; j<10; j++)
        {
    
    
            if(j==0||j==9)
                cout<<"*";
            else cout<<" ";
        }
        cout<<endl;
    }

    //下半圆
    for(int i=0; i<2; i++)
    {
    
    
        for(int j=0; j<i+2; j++)
        {
    
    
            cout<<" ";

        }
        //打印三角形的关键是讨论i和j的关系
        //10-2*(2+i) 即 6-2*i
        for(int j=0; j<6-2*i; j++)
        {
    
    
            if(i==1||j==0||j==5-2*i)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;

    }

    return 0;
}

输出:

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

输出箭头

#include <iostream>
using namespace std;

int main()
{
    
    
    //上三角
    for(int i=0; i<3; i++)
    {
    
    
        for(int j=0; j<2-i; j++)
        {
    
    
            cout<<" ";
        }
        for(int j=0; j<2*i+1; j++)
        {
    
    
            cout<<"*";
        }
        cout<<endl;

    }
    //竖线
    for(int i=0; i<8; i++)
    {
    
    
        for(int j=0; j<5; j++)
        {
    
    
            if(j==2)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;

    }`在这里插入代码片`
    return 0;
}

输出:

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

猜你喜欢

转载自blog.csdn.net/mantou_riji/article/details/123533988#comments_25693390
今日推荐