晕
看着这样的"回”形图案你晕吗?
输入格式:
n。正方形的边长
输出格式:"%3d"
边长为 n 的数字回形方阵。
测试用例1:
测试输入
3
测试输出
1 2 3↵
8 9 4↵
7 6 5↵
测试用例2:
测试输入
4
测试输出
1 2 3 4↵
12 13 14 5↵
11 16 15 6↵
10 9 8 7↵
#include<stdio.h>
#include<string.h>
#define max_N 100
int arr[max_N][max_N];
int main(){
int n;scanf("%d",&n);
int x=0,y=0,i=0;
memset(arr,0,sizeof(arr));
while(i<n*n){
while(y<n&&!arr[x][y])arr[x][y++]=++i;
y--;x++;
while(x<n&&!arr[x][y])arr[x++][y]=++i;
x--;y--;
while(y>=0&&!arr[x][y])arr[x][y--]=++i;
y++;x--;
while(x>=0&&!arr[x][y])arr[x--][y]=++i;
x++;y++;
}
for(x=0;x<n;x++){
for(y=0;y<n;y++)printf("%3d",arr[x][y]);
printf("\n");
}
return 0;
}