实现在n*n方阵里填入1,2,3,……,n,n*n,要求填成蛇形,用C语言的代码
时间: 2023-06-24 17:03:51 浏览: 148
n阶行列式计算 C语言 实现
4星 · 用户满意度95%
以下是用C语言实现在n * n方阵里填入1,2,3,……,n,n * n,要求填成蛇形的代码:
```c
#include <stdio.h>
#include <stdlib.h>
void fill_snake(int n, int matrix[][n]){
int i = 0, j = 0, num = 1;
while (num <= n * n){
// 向右填充
while (j < n && matrix[i][j] == 0){
matrix[i][j] = num;
num++;
j++;
}
j--;
i++;
// 向下填充
while (i < n && matrix[i][j] == 0){
matrix[i][j] = num;
num++;
i++;
}
i--;
j--;
// 向左填充
while (j >= 0 && matrix[i][j] == 0){
matrix[i][j] = num;
num++;
j--;
}
j++;
i--;
// 向上填充
while (i >= 0 && matrix[i][j] == 0){
matrix[i][j] = num;
num++;
i--;
}
i++;
j++;
}
}
void print_matrix(int n, int matrix[][n]){
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
int main(){
int n = 5;
int matrix[n][n];
// 初始化矩阵
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
matrix[i][j] = 0;
}
}
fill_snake(n, matrix);
print_matrix(n, matrix);
return 0;
}
```
在这个代码中,我们首先定义了一个 `fill_snake()` 函数,该函数接收一个 `n` 和一个 `n * n` 的二维数组 `matrix`,并使用蛇形填充算法填充该矩阵。然后,我们定义了一个 `print_matrix()` 函数,该函数用于打印填充后的矩阵。最后,我们在 `main()` 函数中初始化一个 `n * n` 的矩阵,调用 `fill_snake()` 函数填充它,然后调用 `print_matrix()` 函数打印它。
阅读全文