首页 > 解决方案 > 如何使用 C++ 使这个金字塔看起来像我的示例?

问题描述

我想用 C++ 创建这个金字塔,但我有点卡住了。我可以获得一些帮助来完成我的示例吗?

6 *****
*6****
***6***
***6**
*6*
*****6
int num1;
cout<<"please enter a size between 1-9: "<<flush;
cin>>num1;

for(int i = 0; i < num1; i++)
{
    cout <<num1;
    for(int j = 0; j <= i; j++)
    {
        cout<<"*";
    }

    cout << "\n";
}
6*
6**
6***
6****
6 *****
6******

标签: c++

解决方案


有两种方法可以处理此问题:

  • 使用 2 个单独的循环,一个用于数字前面的星星,另一个循环用于数字后面的星星,例如:
#include <iostream>
using namespace std;

int main()
{
    int num1;

    cout << "please enter a size between 1-9: ";
    cin >> num1;

    for(int i = 0; i < num1; ++i)
    {
        for(int j = 0; j < i; ++j)
            cout << "*";

        cout << num1;

        for(int j = num1-1; j > i; --j)
            cout << "*";

        cout << "\n";
    }

    return 0;
}

现场演示

  • 使用单个循环,根据当前输出的位置有条件地决定是否输出星号或数字:
#include <iostream>
using namespace std;

int main()
{
    int num1;

    cout << "please enter a size between 1-9: ";
    cin >> num1;

    for(int i = 0; i < num1; ++i)
    {
        for(int j = 0; j < num1; ++j)
        {
            if (j == i)
                cout << num1;
            else
                cout << "*";
        }

        cout << "\n";
    }

    return 0;
}

现场演示


推荐阅读