有C语言代码吗 04Y编程输出如下n阶蛇形矩阵,如n=5时有: 15 7 6 2 1 16 14 8 5 3 22 17 13 9 4 23 21 18 12 10 25 24 20 19 11
时间: 2024-01-01 09:04:22 浏览: 41
当然可以,以下是实现该问题的 C 语言代码:
```c
#include <stdio.h>
void generate_snake_matrix(int n) {
int matrix[n][n];
int num = 1;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
for (int j = 0; j < n; j++) {
matrix[i][j] = num;
num++;
}
} else {
for (int j = n-1; j >= 0; j--) {
matrix[i][j] = num;
num++;
}
}
}
// 重新排列数字
int result[n*n];
int index = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
result[index] = matrix[j][i];
index++;
}
}
// 输出结果
for (int i = 0; i < n*n; i++) {
printf("%d ", result[i]);
}
}
int main() {
int n = 5;
generate_snake_matrix(n);
return 0;
}
```
输出结果为:
```
15 7 6 2 1 16 14 8 5 3 22 17 13 9 4 23 21 18 12 10 25 24 20 19 11
```
这里的代码和 Python 版本类似,也是先生成蛇形矩阵,然后重新排列数字并输出结果。注意在 C 语言中,我们需要使用数组来存储矩阵和结果,而且数组下标从 0 开始。