📜  C++中的金字塔形状(1)

📅  最后修改于: 2023-12-03 15:14:03.954000             🧑  作者: Mango

C++中的金字塔形状

在C++中,我们可以使用循环语句来打印金字塔形状。下面几个例子将展示不同类型的金字塔形状以及用于打印它们的代码。

打印直角金字塔

我们先介绍如何打印一个直角金字塔,代码如下所示:

#include <iostream>

using namespace std;

int main()
{
    int rows;
    cout << "Enter number of rows: ";
    cin >> rows;

    for(int i = 1, k = 0; i <= rows; ++i, k = 0)
    {
        for(int j = 1; j <= rows - i; ++j)
        {
            cout << " ";
        }

        while(k != 2 * i - 1)
        {
            cout << "*";
            ++k;
        }

        cout << endl;
    }

    return 0;
}

这段代码将提示用户输入要打印的金字塔的行数,然后使用两个for循环来打印金字塔。外层循环用于行数,内层循环用于打印行中的星号。输出如下:

Enter number of rows: 5
    *
   ***
  *****
 *******
*********
打印菱形金字塔

以下是打印菱形金字塔的代码:

#include <iostream>

using namespace std;

int main()
{
    int n, c, k, space = 1;

    cout << "Enter number of rows: ";
    cin >> n;

    space = n - 1;

    for(k = 1; k <= n; k++)
    {
        for(c = 1; c <= space; c++)
        {
            cout << " ";
        }

        space--;

        for(c = 1; c <= 2 * k - 1; c++)
        {
            cout << "*";
        }

        cout << endl;
    }

    space = 1;

    for(k = 1; k <= n - 1; k++)
    {
        for(c = 1; c <= space; c++)
        {
            cout << " ";
        }

        space++;

        for(c = 1 ; c <= 2 * (n - k) - 1; c++)
        {
            cout << "*";
        }

        cout << endl;
    }

    return 0;
}

这段代码将提示用户输入要打印的金字塔的行数,然后使用两个for循环来打印菱形金字塔。外层循环用于行数,内层循环用于打印行中的星号。输出如下:

Enter number of rows: 5
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
打印倒立金字塔

以下是打印倒立的金字塔的代码:

#include <iostream>

using namespace std;

int main()
{
    int rows, i, j, space = 1;

    cout << "Enter number of rows: ";
    cin >> rows;

    space = rows - 1;

    for (i = rows; i >= 1; i--)
    {
        for (j = 0; j < space; j++)
        {
            cout << " ";
        }

        for (j = 1; j <= 2 * i - 1; j++)
        {
            cout << "*";
        }

        space++;

        cout << endl;
    }

    return 0;
}

这段代码将提示用户输入要打印的金字塔的行数,然后使用两个for循环来打印倒立的金字塔。外层循环用于行数,内层循环用于打印行中的星号。输出如下:

Enter number of rows: 5
*********
 *******
  *****
   ***
    *