c语言编程生成nxn的螺旋方阵
时间: 2024-06-09 21:06:55 浏览: 122
下面是用 C 语言编写的生成 nxn 螺旋方阵的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, count = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
int matrix[n][n];
int start_row = 0, end_row = n - 1;
int start_col = 0, end_col = n - 1;
while (start_row <= end_row && start_col <= end_col) {
// 上行从左到右
for (j = start_col; j <= end_col; j++) {
matrix[start_row][j] = count++;
}
start_row++;
// 右列从上到下
for (i = start_row; i <= end_row; i++) {
matrix[i][end_col] = count++;
}
end_col--;
// 下行从右到左
for (j = end_col; j >= start_col; j--) {
matrix[end_row][j] = count++;
}
end_row--;
// 左列从下到上
for (i = end_row; i >= start_row; i--) {
matrix[i][start_col] = count++;
}
start_col++;
}
// 输出螺旋矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
上述代码中,我们定义了一个 nxn 的二维数组 `matrix`,并使用四个变量 `start_row`、`end_row`、`start_col` 和 `end_col` 来记录当前需要填充的行列范围。在每次遍历时,我们分别按照上行、右列、下行和左列的顺序填充矩阵。最后,我们输出生成的螺旋矩阵。
阅读全文