就是这种效果,思考了许久,终于做出来了,分享下~~

源码如下,已在vc6++中编译通过

#include <stdio.h>
#define N 100

void main()
{
int n;
printf(“//———-让n阶矩阵的1到n*n的数字按顺时针回字输出\n”);
printf(“//———-n的最大为100\n”);
printf(“输入n:”);
scanf(“%d”,&n);
int i,j,k,g;
int s=n*n;
int a[N][N];
printf(“a[%d][%d]中的值:”,n,n);

/*往数组中赋值*/
for(k=0,g=0;k<=(n/2);k++,g++)
{

for(i=k,j=g;j<n-g;j++)   //横着左右
{
if (i==0&&j==0)
a[i][j]=1;
else
a[i][j]=a[i][j-1]+1;

printf(“%d”,a[i][j]);
printf(” “);
}

for(i=k+1,j=n-g-1;i<n-k;i++) //竖着上下
{
a[i][j]=a[i-1][j]+1;
printf(“%d”,a[i][j]);
printf(” “);
}

for(i=n-1-k,j=n-1-g-1;j>=g;j–) //横着右左
{
a[i][j]=a[i][j+1]+1;
printf(“%d”,a[i][j]);
printf(” “);
}

for(i=n-1-k-1,j=g;i>k;i–) //竖着下上
{
a[i][j]=a[i+1][j]+1;
printf(“%d”,a[i][j]);
printf(” “);
}

}
     printf(“\n”);
printf(“\n”);

/* 把数组的值输出为n行n列*/
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf(“%3d”,a[i][j]);

}
printf(“\n”);
}

}


版权声明:本文为ailike3原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ailike3/article/details/23279685