C++程序打印空心的右三角星形图案

问题分析

这里我们需要打印一个空心的右三角星形图案,首先我们需要明确一下星形图案的样式,假设要打印5行,那么长这个样子:

*

**

* *

* *

*****

可以发现,每一行星号的数量是和行数有关的,同时每一行空格的数量也和行数有关。因此可以通过循环嵌套的方式来实现这个图案,外层循环控制行数,内层循环控制每一行中的星号和空格。另外,题目中还要求是空心的,因此需要判断一下打印的位置是否在三角形的边界上,如果是的话,则输出星号,否则输出空格。

算法设计

变量定义

C++中定义以下变量:

n:代表打印的行数

i、j:循环控制变量,i控制行数,j控制每一行的字符打印

伪代码

// 定义变量

const int n = 5; // 打印的行数

int i, j; // 循环变量

// 外层循环控制行数

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

// 内层循环控制每一行输出内容

for(j=1; j<=n; j++) {

// 判断是否需要打印星号

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

// 判断是否在边界上,如果是,则输出星号

cout << "*";

} else {

// 否则输出空格

cout << " ";

}

}

// 打印完一行后换行

cout << endl;

}

完整代码

下面是完整的C++代码:

#include<iostream>

using namespace std;

int main() {

// 定义变量

const int n = 5; // 打印的行数

int i, j; // 循环变量

// 外层循环控制行数

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

// 内层循环控制每一行输出内容

for(j=1; j<=n; j++) {

// 判断是否需要打印星号

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

// 判断是否在边界上,如果是,则输出星号

cout << "*";

} else {

// 否则输出空格

cout << " ";

}

}

// 打印完一行后换行

cout << endl;

}

return 0;

}

代码分析

首先定义了打印的行数n,然后定义了两个循环变量i和j。外层循环控制打印的行数,内层循环控制每一行的字符输出。如果当前位置在边界上,则输出星号,否则输出空格。然后打印完一行后换行。

运行结果

当n=5时,输出的结果如下:

*

**

* *

* *

*****

总结

通过本次教程,我们学习了如何在C++中打印出一个空心的右三角星形图案。这个图案虽然简单,但通过本次练习,我们可以掌握循环嵌套的应用,加深对条件判断语句的理解,提升了编程能力。

后端开发标签