21xrx.com
2025-03-29 20:39:07 Saturday
文章检索 我的文章 写文章
C++循环打印图案的实现方法
2023-07-05 09:40:49 深夜i     31     0
C++ 循环 打印图案 实现方法 循环嵌套

C++循环打印图案是一种常见的编程技巧,可以用于练习使用循环语句和掌握输出格式化等基础操作,也可以用于实现一些有趣的图案展示效果。在本篇文章中,我们将介绍 C++ 循环打印图案的实现方法,从基础的矩阵输出到复杂的花式图案,让你轻松学会如何使用 C++ 语言绘制出炫酷的图形。

1. 基础的矩阵输出

最基础的图案就是矩阵,打印一个 `n*n` 的矩阵可以用两个嵌套的 `for` 循环来实现,如下所示:

int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= n; j++) {
    cout << "* ";
  }
  cout << endl;
}

这段代码可以输出一个 5*5 的矩阵,每个位置都是一个 `*` 和一个空格。如果想要输出一个空心的矩阵,可以在 `if` 语句中判断边缘位置输出空格,如下所示:

int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= n; j++) {
    if (i == 1 || i == n || j == 1 || j == n) {
      cout << "* ";
    } else
      cout << " ";
    
  }
  cout << endl;
}

2. 水平翻转和垂直翻转

对于一个已经输出的图案,我们可以通过简单的操作实现水平翻转和垂直翻转。两种翻转方式实现方法类似,只需要在打印图案时调整坐标即可,如下所示:

// 水平翻转
int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = n; j >= 1; j--) {
    cout << "* ";
  }
  cout << endl;
}
// 垂直翻转
int n = 5;
for (int i = n; i >= 1; i--) {
  for (int j = 1; j <= n; j++) {
    cout << "* ";
  }
  cout << endl;
}

3. 三角形图案

除了矩阵,我们还可以使用循环语句打印出各种形状的三角形,下面是一些常见的三角形打印代码:

// 左上直角三角形
int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= i; j++) {
    cout << "* ";
  }
  cout << endl;
}
// 右上直角三角形
int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= n - i; j++)
    cout << " ";
  
  for (int k = 1; k <= i; k++) {
    cout << "* ";
  }
  cout << endl;
}
// 等腰三角形
int n = 5;
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;
}

4. 花式图案

当你熟练掌握了图案输出的基本技巧后,可以尝试使用复杂的循环语句组合出更加花式的图案效果。下面几个例子可以供你参考:

// 菱形
int n = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= n - i; j++)
    cout << "* ";
  
  for (int k = 1; k <= i; 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 <= i; k++) {
    cout << "* ";
  }
  cout << endl;
}
// 蛇形
int n = 5, m = 5;
for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= m; j++) {
    if (i % 2 == 1) {
      cout << "* ";
    } else {
      if (j == 1 && i % 2 == 0) {
        cout << "*";
      } else if (j == m && i % 2 == 0) {
        cout << "*";
      } else
        cout << " ";
      
    }
  }
  cout << endl;
}
// 打印数字金字塔
int n = 5;
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 << i << " ";
  
  cout << endl;
}

总结

通过以上几个例子,相信大家已经对 C++ 的循环打印图案有了一定的了解。无论是基础的矩阵,还是花样的三角形,只要你掌握了循环语句和输出格式化等基础操作,就可以轻松实现各种需要的图案展示效果。当然,这只是循环输出图案的一个小小部分,更多更加花式的图案我们将在日后的学习中进一步探讨。

  
  

评论区

请求出错了