用 c 写一个螺旋矩阵
时间: 2024-06-08 10:09:22 浏览: 19
以下是一个用 C 语言编写的生成螺旋矩阵的程序,其中使用了双重循环和条件语句:
```c
#include <stdio.h>
void generateSpiralMatrix(int n);
int main() {
int n;
printf("请输入一个正整数 n:");
scanf("%d", &n);
printf("\n");
generateSpiralMatrix(n);
return 0;
}
void generateSpiralMatrix(int n) {
int matrix[n][n];
int num = 1;
int left = 0, right = n - 1, top = 0, bottom = n - 1;
while (num <= n * n) {
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++;
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--;
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num++;
}
bottom--;
for (int i = bottom; i >= top; i--) {
matrix[i][left] = num++;
}
left++;
}
printf("生成的螺旋矩阵如下:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
```
运行结果如下:
```
请输入一个正整数 n:5
生成的螺旋矩阵如下:
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
```