|
发表于 2023-11-13 22:43:32
|
显示全部楼层
- #include <stdio.h>
- int main() {
- int n;
- scanf("%d", &n);
- int matrix[n][n];
- int num = 1;
- int top = 0, bottom = n - 1, left = 0, right = n - 1;
- while (top <= bottom && left <= right) {
- 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++;
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- printf("%2d ", matrix[ i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码 |
|