<img src="https://img-blog.youkuaiyun.com/20150531213843434?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHg4NzQ4Mjg1MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
int main(int argc, const char * argv[])
{
// Person *per = [[Person alloc]init];
@autoreleasepool {
int SIZE = 7;
int array[SIZE][SIZE];
int orient = 0;//代表绕圈方向,其中0代表向下,1代表向右,2代表向左,3代表向上
for (int i = 1, j = 0 ,k = 0; i <= SIZE *SIZE; i++) {
array[j][k] = i;//j,k分别为行和列索引
if ((j+k==SIZE -1)) {
if (j>k) {
orient = 1;
}
else{
orient = 2;
}
}else if (k==j&&k>=SIZE/2){
orient =3;
}
else if ((j==k-1)&&k<=SIZE/2){
orient = 0;
}
switch (orient) {
case 0:
j++;
break;
case 1:
k++;
break;
case 2:
k--;
break;
case 3:
j--;
break;
}
}
for (int i = 0; i<SIZE; i++) {
for (int j=0; j<SIZE; j++) {
if (array[i][j] <10) {
printf("0%d ",array[i][j]);
}
else{
printf("%d ",array[i][j]);
}
}
printf("\n");
}
}
return 0;
}