笔记:思路
#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;
}

京公网安备 11010502036488号