/*
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N,i,j,n,num=1;
int a[10][10]={0};
printf("输入你要输出的几阶中断:");
scanf("%d",&N);
for(n=0;n<=N/2;n++)
{
// 一共N/2圈,每一圈四面
//1 2 3 4 5
for(j=n;j<=N-n-1;j++)
a[n][j]=num++;
// 6 7 8
for(i=n+1;i<N-n-1;i++)
a[i][N-n-1]=num++;
// 9 10 11 12
for(j=N-n-1;j>n;j--)
a[N-n-1][j]=num++;
// 13 14 15 16
for(i=N-n-1;i>n;i--)
a[i][n]=num++;
}
//输出螺旋矩阵
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d ",a[i][j]);
printf("\n");
}
system("pause");
return 0;
}
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N,i,j,n,num=1;
int a[10][10]={0};
printf("输入你要输出的几阶中断:");
scanf("%d",&N);
for(n=0;n<=N/2;n++)
{
// 一共N/2圈,每一圈四面
//1 2 3 4 5
for(j=n;j<=N-n-1;j++)
a[n][j]=num++;
// 6 7 8
for(i=n+1;i<N-n-1;i++)
a[i][N-n-1]=num++;
// 9 10 11 12
for(j=N-n-1;j>n;j--)
a[N-n-1][j]=num++;
// 13 14 15 16
for(i=N-n-1;i>n;i--)
a[i][n]=num++;
}
//输出螺旋矩阵
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d ",a[i][j]);
printf("\n");
}
system("pause");
return 0;
}