酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++ 打印星号直角三角形图案的实现与解析

好的,这是一个经典的编程入门题目。下面我会为你提供C++的解决方案,并做一些详细的解释。 ## 🎯 题目理解 我们需要打印一个由星号 `*` 组成的直角三角形图案。对于输入 `n`,图案有 `n` 行,第 `i` 行(从1开始计数)包含 `i` 个星号。 例如,输入 `n = 4`,输出应该为: ``` * ** *** **** ``` ## 💻 C++ 代码实现 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 读取行数 // 外层循环控制行数,从 1 到 n for (int i = 1; i <= n; i++) { // 内层循环控制每一行打印的星号数量,第 i 行打印 i 个 for (int j = 1; j <= i; j++) { cout << "*"; } // 每打印完一行后换行 cout << endl; } return 0; } ``` ## 🔍 代码详解 - **`cin >> n;`** :从标准输入读取一个整数 `n`,代表三角形的行数。 - **外层循环 `for (int i = 1; i <= n; i++)`** :循环变量 `i` 从1递增到 `n`,代表当前正在打印第几行。 - **内层循环 `for (int j = 1; j <= i; j++)`** :循环变量 `j` 从1递增到 `i`,用来控制当前行打印多少个星号。因为第 `i` 行正好需要 `i` 个星号。 - **`cout << "*";`** :打印一个星号,注意这里没有换行,所以同一行的星号会连续输出。 - **`cout << endl;`** :在一行的星号打印完后换行,进入下一行。 ## 📥 输入输出示例 **输入:** ``` 5 ``` **输出:** ``` * ** *** **** ***** ``` ## 🧠 开发建议 1. **注意循环边界**:外层循环从 `1` 开始,而不是从 `0` 开始,这样更直观地对应行号。 2. **使用 `endl` 还是 `'\n'`**:在大量输出时,`'\n'` 性能更好(因为它不会刷新缓冲区),但对于本题目这种小规模输出,`endl` 完全没问题。如果你追求极致性能,可以用 `cout << '\n';`。 3. **代码风格**:虽然可以用 `using namespace std;`,但在大型项目中,建议使用 `std::cout` 和 `std::cin` 以避免命名冲突。 4. **扩展思考**:如果题目要求打印**左对齐**的直角三角形(即右侧有空格),则需要在打印星号之前先打印一定数量的空格。这里题目没有要求,所以直接打印即可。 ## ⚠️ 常见错误 - **忘记换行**:如果遗漏了 `cout << endl;`,所有星号会打印在同一行。 - **内层循环条件写错**:例如写成 `j <= n` 会打印成矩形而不是三角形。 - **输入输出格式不符**:注意输出时每一行星号后面不要有多余的空格(虽然这里没有严格要求,但整洁的格式更好)。 ## 🚀 扩展练习 - 尝试打印**倒直角三角形**(即第一行 `n` 个星号,最后一行1个)。 - 尝试打印**等腰三角形**(即星号居中,左右对称)。 - 尝试用 `while` 循环实现同样的功能。 ######[AI写代码神器 | 825点数解答 | 2026-08-16 17:45:16]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]