输入3:
输出:
1 2 3
8 9 4
7 6 5
代码如下:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int N;
int i,j;
int count,m;
int **num;
cout<<"请输入N的值:";
cin>>N;
num=(int **)malloc(sizeof(int *)*N);
for (i=0;i<N;i++)
{
num[i]=(int *)malloc(sizeof(int)*N);
}
count=1;
m=1;
for (i=0;i<N;i++)//第一行
{
num[0][i]=m++;
}
for (j=N-1;j>=N/2;j--)
{
for (i=count;i<=j;i++)//最后一列
{
num[i][j]=m++;
}
for (i=j;i>=count;i--)//最下面一行
{
num[j][i-1]=m++;
}
for (i=j-1;i>=count;i--)//最左面一列
{
num[i][count-1]=m++;
}
for (i=count;i<j;i++)//上面第二行
{
num[count][i]=m++;
}
count++;
}
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf("%3d ",num[i][j]);
}
cout<<endl;
}
return 0;
}