```c #include <stdio.h> // 打印蛇形矩阵的函数 void printSnakeMatrix(int n) { int matrix[n][n]; // 定义二维数组来存储矩阵元素 int num = 1; // 用于填充矩阵的数字 int row = 0, col = n - 1; // 起始位置在右上角 // 填充矩阵 while (num <= n * n) { // 向右填充 while (col >= 0 &&!matrix[row][col]) { matrix[row][col] = num++; col--; } col++; row++; // 向下填充 while (row < n &&!matrix[row][col]) { matrix[row][col] = num++; row++; } row--; col++; // 向左填充 while (col < n &&!matrix[row][col]) { matrix[row][col] = num++; col++; } col--; row--; // 向上填充 while (row >= 0 &&!matrix[row][col]) { matrix[row][col] = num++; row--; } row++; col--; } // 打印矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } } int main() { int n; printf("请输入一个正整数 n: "); scanf("%d", &n); printSnakeMatrix(n); return 0; } ``` 注意点: 1. 要注意控制循环的边界条件,避免数组越界访问。 2. 填充矩阵时,要确保每个位置只被填充一次。 3. 在输入 n 时,要做好异常处理,比如输入非正整数的情况。 [2024-12-19 23:00:22 | AI写代码神器 | 471点数解答]