21xrx.com
2024-12-22 22:23:04 Sunday
登录
文章检索 我的文章 写文章
C++实现菱形星号空心输出
2023-07-10 20:37:16 深夜i     --     --
C++ 菱形 星号 空心 输出

在C++编程中,经常需要输出各种图形和图案,菱形星号空心图案是其中一个经典的例子。如何用C++实现这个图案呢?接下来,我们将一步步教你实现。

1. 输出菱形图案的算法

该图案共有n行,中间一行为n-1,这些行可以分为上半部分和下半部分,上下两部分的每一行都分为两个部分,左半边和右半边。我们可以用双重循环来实现这个图案。

for (int i = 0; i <= n; i++) {

  for (int j = 1; j <= n - i; j++)

    cout << " ";

  for (int j = 1; j <= 2 * i - 1; j++){

    if (j == 1 || j == 2 * i - 1){

      cout << "*";

    } else

      cout << " ";

  }

  cout << endl;

}

在上面的代码中,当j的值为1或2*i-1时,输出字符“*”,否则输出空格“ ”。

2. 输出空心菱形

在输出菱形星号图案的基础上,我们只需要稍加改动就可以实现空心菱形图案。具体实现方法是,在输出第一行和最后一行时,输出整行字符“*”;在输出其他行时,只有左右两个边界的字符打印字符“*”,其余位置打印字符“ ”。

for (int i = 0; i <= n; i++) {

  for (int j = 1; j <= n - i; j++)

    cout << " ";

  for (int j = 1; j <= 2 * i - 1; j++){

    if (i == 1 || i == n){

      cout << "*";

    } else {

      if (j == 1 || j == 2 * i - 1){

        cout << "*";

      } else

        cout << " ";

    }

  }

  cout << endl;

}

在上面的代码中,我们新增了一层if判断,当是第一行或最后一行时,输出整行字符“*”,否则,根据上述算法,在左右两个边界处打印字符“*”,其余位置打印字符“ ”。

3. 总结

通过以上的算法和代码实现,我们可以用C++简单地输出一个菱形星号空心图案。值得注意的是,以上代码实现过程中,我们并没有考虑输入数据的合法性和异常处理问题,这些问题需要在实际工程中根据实际需求进行。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复