用C ++构建两个半金字塔

时间:2016-02-06 21:45:02

标签: c++ for-loop

我正在介绍C ++课程,我的任务是构建两个由用户输入高度的半金字塔,中间有两个空格。它们应该看起来像this。用户只能输入1到23之间的整数。

编辑:这是我老师想要的答案 - 她最初要求我们使用数组来制作这些,但后来改变了主意用for循环来做项目。

#include<iostream>
using namespace std;

int main(){
int i,j,h;
cout << "Welcome to Mario. Please enter an integer between 1 and 23." << endl;
cin >> h;

for(i=0;i<h;i++)
    {
    for(j=h;j>0;j--)
    {
        if (i+1 >= j)
            cout << "#";
        else
            cout << " " ;
    }
    cout << "  " ;

    for (j=0;j<h;j++)
        {
        if (i>=j)
        cout << "#";
        }
    cout << endl;
    }
return 0;
}

The generated two half pyramids

2 个答案:

答案 0 :(得分:0)

你可以尝试这个程序。它的工作原理是打印一个大三角形,然后用'space'替换中间列。它在另一个循环中使用了一对for循环。

#include <iostream>
using namespace std;

int main() {
    int n, i, sp, k;
    cin >> n;
    n += 1;

    for (i = 1; i <= n; i++) {
        for (sp = 1; sp <= n - i; sp++) {
            cout<<" ";
        }
        for (k = 0; k != 2 * i - 1; k++) {
            if (k == (2 * i - 1) / 2) {
                cout << "  ";
            }
            else cout << "#";
        }
        cout<<"\n";
    }

}

答案 1 :(得分:0)

使用2D阵列...... 虽然代码尚未完成。可以从8-23开始应用相同的模式。

// Example program
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int height ;
    cout << "Please select height from 1 - 23" << endl;
    cin >> height;

    if (height == 1)
    {
        char array [1][13] =
        {
            {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }};


        for (int x = 0; x < 1; x ++)
        {
            for (int y = 0; y < 13; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }
    }
    else if (height == 2)
    {
        char array [2][13] =
        {
            {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' },
            { ' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' '}};

        for (int x = 0; x < 2; x ++)
        {
            for (int y = 0; y < 13; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }

    }

    else if (height == 3)
    {
        char array [3][13] =
        {
            {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' },
            { ' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' '},
            {' ', ' ','*','*','*', ' ',' ',  '*','*','*', ' ', ' '       }};

        for (int x = 0; x < 3; x ++)
        {
            for (int y = 0; y < 13; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }
    }
    else if (height == 4)
    {
        char array [4][13] =
        {
            {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' },
            { ' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' '},
            {' ', ' ','*','*','*', ' ',' ',  '*','*','*', ' ', ' '       },
            {' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ' }};

        for (int x = 0; x < 4; x ++)
        {
            for (int y = 0; y < 13; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }
    }


    else if (height == 5)
    {
        char array [5][13] =
        {
            {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' },
            { ' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' '},
            {' ', ' ','*','*','*', ' ',' ',  '*','*','*', ' ', ' '       },
            {' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ' },
            { '*','*','*','*','*',' ',' ', '*','*','*','*','*' }};

        for (int x = 0; x < 5; x ++)
        {
            for (int y = 0; y < 13; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }

    }

    else if (height == 6)
    {
        char array [6][15] =
        {
            {' ',' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ',' ' },
            { ' ',' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' ',' '},
            {' ',' ', ' ','*','*','*', ' ',' ',  '*','*','*', ' ', ' ' ,' '      },
            {' ',' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ',' ' },
            {' ', '*','*','*','*','*',' ',' ', '*','*','*','*','*',' ' },
            {'*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' }};

        for (int x = 0; x < 6; x ++)
        {
            for (int y = 0; y < 15; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }
    }
    else if (height == 7)
    {
        char array [7][17] =
        {
            {' ',' ',' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ',' ',' '  },
            { ' ',' ',' ', ' ', ' ','*','*', ' ',' ',  '*','*', ' ',' ',' ',' ',' ',' ' },
            {' ',' ',' ', ' ','*','*','*', ' ',' ',  '*','*','*', ' ', ' ' ,' ' ,' '      },
            {' ',' ',' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ',' ',' '  },
            {' ',' ', '*','*','*','*','*',' ',' ', '*','*','*','*','*',' ' ,' ' },
            {' ','*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' ,' ' },
            {'*','*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' ,'*' }};

        for (int x = 0; x < 7; x ++)
        {
            for (int y = 0; y < 17; y ++)
            {
                cout <<array[x][y] ;
            }
            cout << endl;
        }
    }
    else if (height == 8)
    {

    }
    else if (height == 9)
    {

    }
    else if (height == 10)
    {

    }
    else if (height == 11)
    {

    }
    else if (height == 12)
    {

    }
    else if (height == 13)
    {

    }
    else if (height == 14)
    {

    }
    else if (height == 15)
    {

    }
    else if (height == 16)
    {

    }
    else if (height == 17)
    {

    }
    else if (height == 18)
    {

    }
    else if (height == 19)
    {

    }
    else if (height == 20)
    {

    }
    else if (height == 21)
    {

    }
    else if (height == 22)
    {

    }
    else if (height == 23)
    {

    }



}