


#include<stdio.h> int f(int row, int col, int n) { if(n - row - 1 < row) row = n - row - 1; if(n - col - 1 < col) col = n - col - 1; return ((row < col) ? row : col) + 1; } int main() { int i, j, n; scanf("%d", &n); for(i = 0; i < n; i++, putchar('\n')) for(j = 0; j < n; j++) printf("%4d", f(i, j, n)); return 0; }
#include <stdio.h> #define SIZE 7 void Init(int a[SIZE][SIZE]) { int i,j; for(i=SIZE/2;i>=0;i--) for(j=i;j<SIZE-i;j++) a[i][j]=a[j][i]=a[SIZE-i-1][j]=a[j][SIZE-i-1]=i+1; } void main() { int i,j; int a[SIZE][SIZE]; Init(a); for(i=0;i<SIZE;i++,printf("\n")) for(j=0;j<SIZE;j++) printf("%4d",a[i][j]); }
#include <stdio.h> #define M 7 #define N 7 main() { int a[M][N]={1,0}, *p=a, b[4]={N,1,-N,-1}, k=0, i, j;//b[4]让*p绕圈 while( (++k)<M ) //每绕完一圈+1 for( i=0; i<4; i++ ) //p+b[0]下移,p+b[1]右移,p+b[2]上移,p+b[3]左移 for( ; !(*(p+b[i])); *p=k)//判断是否继续向同一个方向移动 p += b[i]; for( i=0; i<M; i++, putchar('\n')) //打印数组 for( j=0; j<N; j++ ) printf("%3d", a[i][j]); }