21xrx.com
2025-03-29 18:15:27 Saturday
文章检索 我的文章 写文章
如何在C++中打印横向菱形?
2023-07-04 01:56:55 深夜i     14     0
C++ 打印 横向 菱形 循环

在C++中打印横向菱形需要采用循环来实现,下面是实现菱形输出的步骤:

1. 首先设置菱形的大小,设定菱形占用的行数和字符数,其中菱形中心点为行数的一半,如下代码所示:

int rows = 5;   // 设置菱形的行数
int columns = (rows * 2) - 1;  // 设置菱形占用的字符数
int center = (rows - 1) / 2;   // 计算菱形中心点

2. 开始通过循环输出空格和星号,具体地,我们需要两段循环来输出菱形的上半部分和下半部分。上半部分需要从第一行到中心点行,下半部分需要从中心点行+1到菱形末尾。

// 输出菱形上半部分
for (int i = 0; i < center + 1; i++) {   // 从第一行开始到中心点行
  for (int j = 0; j < (columns / 2) - i; j++)    // 输出空格
    cout << " ";
  
  for (int k = 0; k < (2 * i) + 1; k++) {   // 输出星号
    cout << "*";
  }
  cout << endl;
}
// 输出菱形下半部分
for (int i = center + 1; i < rows; i++) {   // 从中心点行+1开始到菱形末尾
  for (int j = 0; j < i - center; j++)    // 输出空格
    cout << " ";
  
  for (int k = 0; k < (columns - (2 * (i - center))) + 1; k++) {   // 输出星号
    cout << "*";
  }
  cout << endl;
}

3. 最后将上半部分和下半部分输出起来,就可以得到横向的菱形输出了。

完整代码如下:

#include <iostream>
using namespace std;
int main() {
  int rows = 5;   // 设置菱形的行数
  int columns = (rows * 2) - 1;  // 设置菱形占用的字符数
  int center = (rows - 1) / 2;   // 计算菱形中心点
  // 输出菱形上半部分
  for (int i = 0; i < center + 1; i++) {   // 从第一行开始到中心点行
    for (int j = 0; j < (columns / 2) - i; j++)    // 输出空格
      cout << " ";
    
    for (int k = 0; k < (2 * i) + 1; k++) {   // 输出星号
      cout << "*";
    }
    cout << endl;
  }
  // 输出菱形下半部分
  for (int i = center + 1; i < rows; i++) {   // 从中心点行+1开始到菱形末尾
    for (int j = 0; j < i - center; j++)    // 输出空格
      cout << " ";
    
    for (int k = 0; k < (columns - (2 * (i - center))) + 1; k++) {   // 输出星号
      cout << "*";
    }
    cout << endl;
  }
  return 0;
}

  
  

评论区