编程实现自动填充n×n矩阵元素数值,填充规则为:从第一行最后一列矩阵元素开始按逆时针方向螺旋式填充数值1,2,…,n×n,其中:n从键盘输入且3≤n≤20。最后向显示器输出该矩阵所有元素。【输入形式】输入一个正整数,为矩阵的行数和列数 【输出形式】按行列顺序输出n×n矩阵的所有元素。 (1)每行n列矩阵元素均需在一行内输出显示 (2)输出每行矩阵元素后均需换行输出下一行,共输出n行 (3)每个矩阵元素数值的域宽均为4位且右对齐 【样例输入】 11 【样例输出】 11 10 9 8 7 6 5 4 3 2 1 12 49 48 47 46 45 44 43 42 41 40 13 50 79 78 77 76 75 74 73 72 39 14 51 80 101 100 99 98 97 96 71 38 15 52 81 102 115 114 113 112 95 70 37 16 53 82 103 116 121 120 111 94 69 36 17 54 83 104 117 118 119 110 93 68 35 18 55 84 105 106 107 108 109 92 67 34 19 56 85 86 87 88 89 90 91 66 33 20 57 58 59 60 61 62 63 64 65 32 21 22 23 24 25 26 27 28 29 30 31C语言
时间: 2024-02-10 19:16:18 浏览: 177
C++环形矩阵填充实现
以下是C语言实现自动填充n×n矩阵的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, num = 1, x = 0, y = 0;
int arr[20][20] = {0}; // 初始化矩阵元素为0
printf("请输入矩阵的行数和列数(3-20):");
scanf("%d", &n);
// 判断n的范围是否符合要求
if (n < 3 || n > 20) {
printf("输入的行数和列数不符合要求!\n");
return 0;
}
// 从第一行最后一列开始按逆时针方向螺旋式填充数值
while (num <= n * n) {
// 向上走
for (i = y; i < n - y; i++) {
arr[x][i] = num++;
}
// 向右走
for (i = x + 1; i < n - x; i++) {
arr[i][n - y - 1] = num++;
}
// 向下走
for (i = n - y - 2; i >= y; i--) {
arr[n - x - 1][i] = num++;
}
// 向左走
for (i = n - x - 2; i > x; i--) {
arr[i][y] = num++;
}
x++;
y++;
}
// 输出矩阵所有元素
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%4d", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
以上代码中,我们使用二维数组来存储矩阵元素,使用了四个循环来按螺旋式填充数值,最后输出所有元素。
阅读全文