大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
编程打印如图所示的n×n的方阵。
如图为顺时针螺旋:
算法思想:先把图形分成几个圈,及“1~12”为第一圈,“13~16”为第二圈;并定义下标变量是i,由于n与圈数的关系,(例如n=3、4均为两圈),所以下标变量范围1~(n+1)/2。
(1)i行,从i列到n-i列 (n=4,i=1时“摆放1,2,3”) 上方
(2)n+1-i列,从i行到n-i行 (n=4,i=1时“摆放4,5,6”) 右侧
(3)n+1-i行,从n+1-i行到i+1列(n=4,i=1时“摆放7,8,9”)下方
(4)i列,从n+1-i行到i+1行 (n=4,i=1时“摆放10,11,12”)左侧
程序如下:
#include
void main()
{
int i,j,a[100][100],n,k;
printf("输入n的值:");
scanf("%d",&n);
k=1;
for(i=1;i<=n/2;i=i+1)
{
for(j=i;j<=n-i;j=j+1) //上方
{
a[i][j]=k;
k=k+1;
}
for(j=i;j<=n-i;j=j+1) //右侧
{
a[j][n-i+1]=k;
k=k+1;
}
for(j=n-i+1;j>=i+1;j=j-1) //下方
{
a[n-i+1][j]=k;
k=k+1;
}
for(j=n-i+1;j>=i+1;j=j-1) //左侧
{
a[j][i]=k;
k=k+1;
}
}
if(n%2==1)
{
i=(n+1)/2;
a[i][i]=n*n;
}
for(i=1;i<=n;i=i+1)
{
for(j=1;j<=n;j=j+1)
printf("%4d",a[i][j]);
printf("\n");
}
printf("\n");
}
若想要做一个逆时针的螺旋矩阵,只需要改改逻辑值就好了
每一次的编程都是自己的收获,珍惜~~~
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。