21xrx.com
2024-11-22 06:44:40 Friday
登录
文章检索 我的文章 写文章
如何用c++输出菱形的*图案
2023-07-06 05:16:27 深夜i     --     --
c++ 输出 菱形 *图案

在C++中实现输出菱形的图案是一项基础而又有趣的练习,本篇文章将介绍一种简单的实现方法。

图案的基本思路是在控制台输出若干个空格(空格的数量随行数而变化),并在其中间插入若干个*号,*号的数量也随行数而变化。为了输出一个完整的菱形,我们可以将它分为两个三角形,然后对其进行分别输出。

下面是输出上半部分的代码:


#include <iostream>

using namespace std;

int main() {

  int n;

  cout << "请输入行数:";

  cin >> n;

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

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

      cout << " ";

    

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

      cout << "*";

    }

    cout << endl;

  }

  return 0;

}

程序中使用了三个循环嵌套,第一个循环控制图案的行数,第二个循环输出空格,第三个循环输出*号。对于其中的空格和*号数量的计算,我们可以通过简单的数学公式得到,例如在第i行,空格数量为n-i,*号数量为2*i-1。

接下来是下半部分的代码:


for (int i = n - 1; i >= 1; i--) {

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

      cout << " ";

    

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

      cout << "*";

    }

    cout << endl;

  }

与上半部分的代码非常相似,只是反向输出。

完整的代码:


#include <iostream>

using namespace std;

int main() {

  int n;

  cout << "请输入行数:";

  cin >> n;

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

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

      cout << " ";

    

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

      cout << "*";

    }

    cout << endl;

  }

  for (int i = n - 1; i >= 1; i--) {

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

      cout << " ";

    

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

      cout << "*";

    }

    cout << endl;

  }

  return 0;

}

最后,我们就可以运行程序,输入行数,然后在控制台中美观地输出菱形图案了。

  
  

评论区

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