笔记:思路
#include<stdio.h>
int main()
{
	int n, num=1, i, j;
	int up, down, left, right;
	int a[20][20];
	scanf ("%d", &n);
	up=0, left=0, right=n-1, down=n-1;
	
	while ( num<=n*n ) {
		for ( i=left; i<=right; i++ ) {
			a[up][i]=num++;
		}
		up++;
		for ( i=up; i<=down; i++ ) {
			a[i][right]=num++;
		}
		right--;
		for ( i=right; i>=left; i-- ) {
			a[down][i]=num++;
		}
		down--;
		for ( i=down; i>=up; i-- ) {
			a[i][left]=num++;
		}
		left++;
	}
	
	for ( i=0; i<n; i++ ) {
		for ( j=0; j<n; j++ ) {
			printf ("%d ", a[i][j]);
		}
		printf ("\n");
	}
	
	return 0;
}