从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:
输入数字2,则程序输出:
1 2
4 3
输入数字3,则程序输出:
1 2 3
8 9 4
7 6 5
输入数字4, 则程序输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
#include<stdio.h>
#include<math.h>
#define N 10
main(){
int data[N*N] = {0};
int x,y;
int i,j,k;
for(x = 0,y = -1, k = 1; x < N; x++){
for( i = 0; i < N - x; i++, k++){
y += (int)pow(-1,x);//游标y横向每次加pow(-1,x)
data[y] = k;
}
for( j = 0 ; j < N - x - 1 ; j++, k++){
y += (int)(N*pow(-1,x));//游标y纵向每次加N*pow(-1,x)
data[y] = k;
}
}
for( k = 0; k < N * N; k++){//输出
printf("%3d ",data[k]);
if((k + 1) % N == 0)printf("\n");
}
}