C++ 程序打印星形菱形图案


2023年1月31日, Learn eTutorial
2118

这是一个打印菱形图案的 C++ 程序。

如何制作菱形图案?

通常,要打印菱形图案,我们需要打印两个三角形。一个向上,一个向下,只需打印第一个三角形,然后以第一个三角形的相反方向打印第二个三角形。

如何在 C++ 中打印星形菱形图案?

要在 C++ 编程中打印星形菱形图案,请让用户输入行数。如果用户输入 8 作为菱形的行大小,那么它的上三角部分将扩展到 8 行,而它的下三角部分将扩展到 7 (比行数少一行) 行。

将输入的数字存储到一个变量 rownum 中。将另一个变量 space 设置为 rownum-1。我们使用三个 for 循环来创建每个三角形,即菱形的上三角形和下三角形。

  • 1 对应行
  • 2 对应空格
  • 3 对应列。

考虑一个 8 的例子。
rownum = 8;space = 7;

for 循环开始执行 i = 0 且条件 i <= 8 评估为真。

for(i=1; i<=rowNum; i++)

控制流进入循环,现在 j = 1 且条件 j <= 7 评估为真。

for(j=1; j<=space; j++)

循环内部打印一个空格。
cout<<" ";

每次退出此循环后,递减 space 的值,以便下一行或下一行打印的空格少一个。
space--;

使用第三个 for 循环来打印星号。在第一次执行时,j=1 且条件 j<=(2*i-1)j<=(2*1-1)1<=(1)1<=1 评估为真,因此程序流进入此循环并打印一个星号 (*)。

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

使用 endl,下一项从新行开始。

cout<

此过程一直持续到条件评估为假。通过这种方式,打印出上菱形的星形图案,同样,下菱形也得到打印。

算法

步骤 1: 调用头文件 iostream。

步骤 2:使用命名空间 std。

步骤 3:打开整数类型的主函数;int main()

步骤 4:声明整数类型变量 rownum, space, I, j;

步骤 5:要求用户输入行数。

步骤 6:将数字获取到变量 rownum 中;

步骤 7:将变量 space 的值设置为 rownum – 1;

步骤 8:创建一个对应于行的 for 循环。将 i 的值初始化为 0;检查条件 i <= rownum。如果为真,则转到步骤 9

步骤 9:  创建一个对应于空格的 for 循环

  • 初始化 j = 1 并检查条件 j <= space
  • 如果为真,则打印一个空格,并且在每次迭代后将 space 的值减 1。
  • 同时,将 j 的值加 1

步骤 10:创建另一个对应于打印星号的 for 循环
               在第一次执行时,j = 1 并检查条件  j<=(2*i-1)j<=(2*1-1)  或 1<=(1)1<=1。如果为真,则打印一个星号;
               将 j 的值加 1;

步骤 11:设置 space = 1;

步骤 12:重复步骤 8、910

步骤 13:退出。

C++ 源代码

                                          #include<iostream>
using namespace std;
int main()
{
    int i, j, rownum, space;
    cout<<"Enter the Number of Rows: ";
    cin>>rownum;
    space = rownum-1;
    for(i=1; i<=rownum; i++)
    {
        for(j=1; j<=space; j++)
            cout<<" ";
        space--;
        for(j=1; j<=(2*i-1); j++)
            cout<<"*";
        cout<<endl;
    }
    space = 1;
    for(i=1; i<=(rownum-1); i++)
    {
        for(j=1; j<=space; j++)
            cout<<" ";
        space++;
        for(j=1; j<=(2*(rownum-i)-1); j++)
            cout<<"*";
        cout<<endl;
    }
    cout<<endl;
    return 0;
}
                                      

输出

Enter the Number of Rows: 8
*
      ***
     *****
    *******
   *********
  ***********
 *************
***************
 *************
  ***********
   *********
    *******
     *****
      ***
       *