C++程序打印空心直角三角形星号图案


以不同的格式(例如金字塔、正方形和菱形)显示星号图案在基础编程和逻辑构建中非常常见。在学习编程中的循环语句时,我们已经看到了几个星号和数字图案问题。在本文中,我们将了解如何在C++中打印空心直角三角形星号图案。

在这个程序中,我们取行数n,这将创建n行星号图案。让我们看一个相同的例子。

空心直角星号图案

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

在这个例子中,共有n行。每一行都有几个星号,开头有一些空格。除第一行和最后一行外,每一行只有两个星号,中间有一些空格。第一行只包含一个星号,最后一行包含n个星号。

对于每一行,都有n – i个空格,之后打印星号。对于完整的右对齐三角形,我们连续打印星号。但这里我们只在第一列和最后一列打印星号,否则打印空格以使其为空心。最后一行打印所有星号以构成边界。

算法

  • 读取n作为输入
  • 对于i从1到n,执行
    • 对于j从1到n - i,执行
      • 输出空格
    • 结束循环
    • 对于k从1到i,执行
      • 如果i不等于n,则
        • 如果k = 1或k = i,则
          • 显示'*'
        • 否则
          • 显示空格
        • 结束判断
      • 否则
        • 显示'*'
      • 结束判断
    • 结束循环
    • 将光标移到下一行
  • 结束循环

由于在线编译器的一些限制,我们在开头添加了点而不是空格。否则,它有时会截断该行,输出结果将不正确。

示例

#include <iostream>
using namespace std;
void solve( int n ){
   for ( int i = 1; i <= n; i++ ) {
      for ( int j = 1; j <= n - i; j++ ) {
         cout << ".";
      }
      for ( int k = 1; k <= i; k++ ) {
         if ( i != n ) {
            if ( k == 1 || k == i ) {
               cout << "*";
            } else {
               cout << " ";
            }
         } else {
            cout << "*";
         }
      }
      cout << "\n";
   }
}
int main(){
   int n = 7;
   cout << "Hollow Star Pattern for " << n << " lines." << endl;
   solve( n );
}

输出

Hollow Star Pattern for 7 lines.
......*
.....**
....* *
...*  *
..*   *
.*    *
*******

输出 (n = 18)

Hollow Star Pattern for 18 lines.
.................*
................**
...............* *
..............*  *
.............*   *
............*    *
...........*     *
..........*      *
.........*       *
........*        *
.......*         *
......*          *
.....*           *
....*            *
...*             *
..*              *
.*               *
******************

结论

星号图案易于实现,有助于学习编程中的循环概念。在一些文章中,我们已经看到打印金字塔、方框和菱形等星号图案的技术。在本文中,我们了解了如何在C++中显示空心金字塔。它获取行数n,然后显示右对齐的空心三角形星号图案。每一行在一些空格之后都有几个星号。空格用于对齐(由于在线编译器的限制,我们使用点而不是空格进行对齐)。对于最后一行,它打印所有星号,但对于其他行,它只在第一列和最后一列的位置打印星号。因此形成了空心三角形。

更新于:2022年12月14日

882 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告