031. 编写嵌套循环
在C语言中,嵌套循环是指在一个循环内部再嵌套另一个循环。嵌套循环常用于处理多维数组、矩阵操作、图形打印等场景。以下将通过具体示例展示如何编写嵌套循环。
示例1:打印乘法表
打印一个9x9的乘法表是一个经典的嵌套循环示例。
#include <stdio.h>
int main() {
// 外层循环控制行
for (int i = 1; i <= 9; i++) {
// 内层循环控制列
for (int 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
示例2:打印图形
使用嵌套循环可以打印各种图形,例如打印一个等腰三角形。
#include <stdio.h>
int main() {
int rows = 5;
// 外层循环控制行
for (int i = 1; i <= rows; i++) {
// 打印空格
for (int j = 1; j <= rows - i; j++) {
printf(" ");
}
// 打印星号
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n"); // 每打印完一行换行
}
return 0;
}
输出结果
*
***
*****
*******
*********
示例3:处理二维数组
嵌套循环常用于处理二维数组,例如计算二维数组的总和。
#include <stdio.h>
int main() {
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int rows = 3;
int cols = 4;
int sum = 0;
// 使用嵌套循环遍历二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
sum += matrix[i][j];
}
}
printf("The sum of the matrix elements is: %d\n", sum);
return 0;
}
输出结果
The sum of the matrix elements is: 78
示例4:查找二维数组中的最大值
使用嵌套循环可以查找二维数组中的最大值。
#include <stdio.h>
int main() {
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int rows = 3;
int cols = 4;
int max = matrix[0][0];
// 使用嵌套循环遍历二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
}
printf("The maximum value in the matrix is: %d\n", max);
return 0;
}
输出结果
The maximum value in the matrix is: 12
示例5:嵌套循环的控制
嵌套循环可以使用break
和continue
语句来控制循环的执行。
#include <stdio.h>
int main() {
// 外层循环
for (int i = 1; i <= 3; i++) {
printf("Outer loop iteration: %d\n", i);
// 内层循环
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue; // 跳过内层循环的当前迭代
}
printf(" Inner loop iteration: %d\n", j);
}
}
return 0;
}
输出结果
Outer loop iteration: 1
Inner loop iteration: 1
Inner loop iteration: 3
Outer loop iteration: 2
Inner loop iteration: 1
Inner loop iteration: 3
Outer loop iteration: 3
Inner loop iteration: 1
Inner loop iteration: 3
通过上述示例,你可以看到如何在C语言中编写嵌套循环:
- 外层循环:控制主要的迭代逻辑。
- 内层循环:在每次外层循环迭代中执行更细粒度的迭代。
- 控制语句:使用
break
和continue
语句来控制循环的执行。 - 应用场景:嵌套循环常用于处理多维数组、打印图形、矩阵操作等。
视频讲解
BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)