C语言实现编程实现自动填充n×n矩阵元素数值,填充规则为:从第一行最后一列矩阵元素开始按逆时针方向螺旋式填充数值1,2,…,n×n,其中:n从键盘输入且3≤n≤20。最后向显示器输出该矩阵所有元素。
时间: 2023-06-14 19:04:54 浏览: 125
以下是C语言实现螺旋填充矩阵的代码:
```c
#include <stdio.h>
int main() {
int n, num = 1;
printf("输入矩阵边长n(3≤n≤20):");
scanf("%d", &n);
int matrix[n][n];
int row_start = 0, row_end = n-1, col_start = 0, col_end = n-1;
while (num <= n*n) {
// 从左到右填充
for (int i = col_start; i <= col_end; i++) {
matrix[row_start][i] = num;
num++;
}
row_start++;
// 从上到下填充
for (int i = row_start; i <= row_end; i++) {
matrix[i][col_end] = num;
num++;
}
col_end--;
// 从右到左填充
for (int i = col_end; i >= col_start; i--) {
matrix[row_end][i] = num;
num++;
}
row_end--;
// 从下到上填充
for (int i = row_end; i >= row_start; i--) {
matrix[i][col_start] = num;
num++;
}
col_start++;
}
// 输出矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
代码中使用了一个二维数组来表示矩阵,使用四个变量来记录当前填充矩阵的位置。程序依次从左到右、从上到下、从右到左、从下到上填充矩阵,直到填满所有元素。最后输出矩阵即可。
阅读全文