編程打印如圖所示的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<stdio.h>
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");
}
若想要做一個逆時針的螺旋矩陣,只需要改改邏輯值就好了
每一次的編程都是自己的收穫,珍惜~~~
螺旋矩陣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
【螺旋矩陣2】
want you tell me why
2020-07-02 20:16:39
【螺旋矩陣1】
want you tell me why
2020-07-02 20:16:38
LeetCode(螺旋矩陣)-模擬旋轉
CodeJames
2020-06-22 05:02:52
【模擬】螺旋矩陣
Mr.Gonlando
2020-05-15 01:07:31
螺旋矩陣 對於一個 n 行 m 列的表格,我們可以使用螺旋的方式給表格依次填上正整數,我們稱填好的表格爲一個螺旋矩陣。
爱做梦的鱼
2020-04-20 13:31:05
Java 第十一屆 藍橋杯 省模擬賽 螺旋矩陣
南 墙
2020-04-14 09:30:40
LeetCode-Array-【54】螺旋矩陣(Java)
GolvenDong
2020-02-25 23:33:02
螺旋矩陣
Edwards_June
2020-02-23 13:18:31
螺旋矩陣
JustForYouForNLP
2020-02-23 01:09:44
Postman 拷貝 curl 不識別 --data-raw
亮sir
2024-06-06 14:26:55