用c语言编写一个二维数组回型遍历
时间: 2024-12-24 08:38:35 浏览: 11
在C语言中,二维数组的回形遍历通常被称为“蛇形打印”或“矩阵螺旋遍历”。以下是一个简单的示例,展示了如何通过嵌套循环来实现这一过程:
```c
#include <stdio.h>
#define ROWS 4 // 定义二维数组的行数
#define COLS 4 // 定义二维数组的列数
void spiralTraversal(int matrix[ROWS][COLS], int startRow, int startCol) {
int row = startRow, col = startCol;
while (row >= 0 && col >= 0 && row < ROWS && col < COLS) {
// 从左上到右下
for (int i = col; i < COLS; ++i) {
printf("%d ", matrix[row][i]);
}
row++;
// 从右下到右上
for (int i = row + 1; i < ROWS; ++i) {
printf("%d ", matrix[i][COLS - 1]);
}
col--;
// 从右上到左下
if (row < ROWS) {
for (int i = COLS - 2; i >= col; --i) {
printf("%d ", matrix[ROWS - 1][i]);
}
rows--;
}
// 从左下到左上
if (col > 0) {
for (int i = rows - 2; i >= row; --i) {
printf("%d ", matrix[i][col]);
}
col++;
}
}
}
int main() {
int arr[ROWS][COLS] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
spiralTraversal(arr, 0, 0);
return 0;
}
```
这个函数`spiralTraversal`接受一个二维数组和起始行、列坐标,按顺时针方向打印出一个回形路径上的数字。
阅读全文