输入一个正整数 n,生成一个 n×n 的蛇形方阵(具体见样例)。 输入格式: 一行一个正整数 n,1≤n≤20。 输出格式: 共 n 行,每行 n 个正整数,每个正整数占 5 列。 c语言
时间: 2025-01-05 19:41:57 浏览: 6
以下是一个用C语言编写的程序,可以生成一个n×n的蛇形方阵:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int matrix[n][n];
int num = 1;
int i, j;
for (i = 0; i < n; i++) {
if (i % 2 == 0) {
// 偶数行从左到右填充
for (j = 0; j < n; j++) {
matrix[i][j] = num++;
}
} else {
// 奇数行从右到左填充
for (j = n - 1; j >= 0; j--) {
matrix[i][j] = num++;
}
}
}
// 输出结果
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%5d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序的工作原理如下:
1. 首先,我们读取输入的正整数n。
2. 我们创建一个n×n的二维数组来存储方阵。
3. 我们使用两个嵌套的for循环来填充方阵:
- 外层循环遍历每一行。
- 内层循环根据行号是偶数还是奇数来决定填充方向:
* 如果行号是偶数(0, 2, 4,...),我们从左到右填充。
* 如果行号是奇数(1, 3, 5,...),我们从右到左填充。
4. 在填充过程中,我们使用一个计数器num来生成连续的正整数。
5. 最后,我们使用两个嵌套的for循环来输出生成的方阵。
这个程序可以生成符合要求的n×n蛇形方阵。每个数字占据5个字符的位置,以确保输出格式整齐。
阅读全文