下面是一个5阶的螺旋方阵。编写程序打印此形式的n(n<10)阶的方阵。 (顺时针方向旋进) 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 用c语言
时间: 2023-03-21 22:02:57 浏览: 123
以下是使用C语言编写的程序,用于打印n(n < 10)阶的螺旋方阵:
```c
#include <stdio.h>
int main() {
int n, i, j, x, y, num;
int arr[10][10] = {0}; // 初始化数组为0
printf("请输入一个小于10的正整数n:\n");
scanf("%d", &n);
x = 0; // x坐标
y = 0; // y坐标
num = 1; // 初始值
for (i = 0; i < n / 2; i++) { // 先填充外层的环形
// 从左到右填充上行
for (j = y; j < n - y - 1; j++) {
arr[x][j] = num++;
}
// 从上到下填充右列
for (j = x; j < n - x - 1; j++) {
arr[j][n - y - 1] = num++;
}
// 从右到左填充下行
for (j = n - y - 1; j > y; j--) {
arr[n - x - 1][j] = num++;
}
// 从下到上填充左列
for (j = n - x - 1; j > x; j--) {
arr[j][y] = num++;
}
x++;
y++;
}
// 如果n是奇数,填充最中心的那个数
if (n % 2 == 1) {
arr[n / 2][n / 2] = num;
}
// 打印方阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%-3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
使用方法:将上述代码复制到一个C语言编译器中,编译并运行程序,输入小于10的正整数n,程序将会输出一个顺时针方向旋进的n阶螺旋方阵。
阅读全文