C语言程序设计:嵌套循环 for
打印矩形、直角三角形、九九乘法表
1. 引入
在 C 语言中,嵌套循环(Nested Loop)是指一个循环语句中包含另一个循环语句。在处理一些复杂的输出任务时,嵌套循环非常有用。比如,打印矩形、直角三角形、九九乘法表等常见的图形和表格,我们通常需要用到嵌套循环。
2. 嵌套循环 for 的语法
嵌套循环的基本形式是一个 for 循环内部又有一个 for 循环。例如:
for (初始化; 条件; 更新) {
for (初始化; 条件; 更新) {
// 内层循环体
}
// 外层循环体
}
- 外层循环:控制行数。
- 内层循环:控制列数或内容。
3. 示例:打印矩形、直角三角形、九九乘法表
3.1 打印矩形
要打印一个矩形,我们可以通过两个嵌套的 for 循环来控制行和列。外层循环控制行数,内层循环控制列数。
代码示例:
#include <stdio.h>
int main() {
int i, j;
int rows = 5; // 行数
int cols = 10; // 列数
for (i = 1; i <= rows; i++) {
for (j = 1; j <= cols; j++) {
printf("* "); // 打印星号
}
printf("\n"); // 换行
}
return 0;
}
输出示例:
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
3.2 打印直角三角形
直角三角形的打印方法是通过外层循环控制行数,内层循环控制列数。在每一行中,列数逐渐增加,从 1 列到与行数相等。
代码示例:
#include <stdio.h>
int main() {
int i, j;
int rows = 5; // 行数
for (i = 1; i <= rows; i++) {
for (j = 1; j <= i; j++) {
printf("* "); // 打印星号
}
printf("\n"); // 换行
}
return 0;
}
输出示例:
*
* *
* * *
* * * *
* * * * *
3.3 打印九九乘法表
九九乘法表是嵌套循环应用的经典例子。外层循环控制行,内层循环控制列,打印每一行的乘法结果。
代码示例:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d*%d=%-2d ", j, i, i * j); // 打印乘法结果
}
printf("\n"); // 换行
}
return 0;
}
输出示例:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4. 代码说明
- 打印矩形:我们通过两个循环来控制矩形的行和列,外层循环负责行,内层循环负责每行中的列。
- 打印直角三角形:外层循环控制行数,而内层循环的次数与行数相等。这样每一行的星号数量会逐渐增加,最终形成一个直角三角形。
- 打印九九乘法表:外层循环控制行数,内层循环控制每行的乘法,使用格式化输出 (
%-2d) 来确保乘法结果对齐。
5. 练习题
-
题目:编写一个程序,打印一个 6x6 的矩形,矩形的边框是星号,中间部分为空格。
答案:
#include <stdio.h> int main() { int i, j; int rows = 6, cols = 6; for (i = 1; i <= rows; i++) { for (j = 1; j <= cols; j++) { if (i == 1 || i == rows || j == 1 || j == cols) { printf("* "); } else { printf(" "); // 打印空格 } } printf("\n"); } return 0; } -
题目:编写一个程序,打印一个等边三角形,使用星号(
*)构建,底边和高度为 5。答案:
#include <stdio.h> int main() { int i, j; int rows = 5; // 高度 for (i = 1; i <= rows; i++) { // 打印前导空格 for (j = 1; j <= rows - i; j++) { printf(" "); } // 打印星号 for (j = 1; j <= (2 * i - 1); j++) { printf("*"); } printf("\n"); } return 0; } -
题目:编写一个程序,打印一个反向直角三角形,底边为 5,打印的符号为
#。答案:
#include <stdio.h> int main() { int i, j; int rows = 5; for (i = rows; i >= 1; i--) { for (j = 1; j <= i; j++) { printf("# "); } printf("\n"); } return 0; } -
题目:编写一个程序,打印一个 9x9 的乘法表。
答案:
#include <stdio.h> int main() { int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { printf("%d*%d=%-2d ", j, i, i * j); } printf("\n"); } return 0; }
总结
- 嵌套循环 是处理多维结构和图形输出时非常有用的工具,常见的应用包括打印矩形、三角形以及表格类数据。
- 通过控制外层和内层循环的迭代次数,能够构建各种形状和图案。
- 在编程过程中,掌握嵌套循环的使用方法有助于处理更复杂的输出和计算任务。
评论区