从右上角开始逆时针螺旋填充n*n矩阵c语言
时间: 2024-10-27 11:14:43 浏览: 200
在C语言中,你可以通过嵌套循环和数组索引来实现从右上角到左下角的逆时针螺旋填充n * n矩阵的操作。下面是一个简单的示例:
```c
#include <stdio.h>
void spiralPrint(int m, int n, int a[m][n]) {
int i, k = 0, l = 0;
while (k < m && l < n) {
// 右边
for (i = l; i < n; ++i) {
printf("%d ", a[k][i]);
}
k++;
// 下面
for (i = k; i < m; ++i) {
printf("%d ", a[i][n - 1]);
}
n--;
// 左边
if (k < m) {
for (i = n - 1; i >= l; --i) {
printf("%d ", a[m - 1][i]);
}
m--;
}
// 上面
if (l < n) {
for (i = m - 1; i >= k; --i) {
printf("%d ", a[i][l]);
}
l++;
}
}
}
int main() {
int size;
printf("Enter matrix size (n x n): ");
scanf("%d", &size);
int arr[size][size];
// 填充矩阵(这里仅做演示,实际应用需要用户输入)
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
arr[i][j] = i + j; // 示例:使用行*列顺序填充
}
}
spiralPrint(size, size, arr);
return 0;
}
```
这个程序首先接收用户输入的矩阵大小,然后初始化一个n * n的矩阵并进行填充。`spiralPrint`函数按照逆时针的路径打印矩阵元素。
阅读全文