蛇形矩陣有多種,今天說的是下面這種回形的蛇形矩陣。
如4x4的回形蛇形矩陣
如5x5的回形蛇形矩陣
通過分析發現,這種矩陣,在走一圈以後又變成乙個小2個的矩陣,如5x5的矩陣,從1、2、3。。。到14、15、16一圈後,變成了3x3的矩陣,因此可以使用遞迴的方式來解決這個問題。
1.走一圈需要4個迴圈
1)分別是向下走n次(nxn的矩陣)
2)向左走n-1次
3)向上走n-1次
4)向右走n-2次
2.如果n是奇數,如7,遞迴時分別是7-2=5,5-2=3,3-2=1,然後結束
如果n是偶數,如8,遞迴時分別是8-2=6,6-2=4,4-2=2,然後結束
因此分別需要寫出n=2、n=1時矩陣的輸出方法
3.通過以上分析,寫出以下蛇形矩陣的函式
//s:蛇形矩陣,start:矩陣開始值,n:nxn的蛇形矩陣,posi:開始的行號,posj:開始的列號
void matrix(int **s,int start,int n,int posi,int posj)
else if(n==2) //n=2時,有4個元素
else
{for(i=0;i
int main()
{ printf("請輸入nxn蛇形矩陣的數目n:\n");
int i,j,n;
int **s;
scanf("%d",&n);
s=(int **)malloc(n*sizeof(int *));
for(i=0;i
蛇形矩陣的一種解法(C語言)
錨定中心點 int i n 2 int j n 2 int k 0 int dir 4 a i j num num while num n n while flag feet feet 直到挪動到指定步數 k break case down flag feet 0 dowhile flag feet...
C語言輸出4 5的矩陣
解題思路 可以用迴圈的巢狀來處理此問題,用外迴圈來輸出一行資料,用內迴圈來輸出一列資料。要注意設法輸出矩陣的格式,即每輸出完5個資料後換行。源 演示 include 標頭檔案 intmain 主函式 printf d t i j 輸出數 return0 函式返回值為0 編譯執行結果如下 123 45...
C語言蛇形矩陣之崴腳的小北
如上,小北按照到達的順序形成了44的矩陣。現在給你乙個數字n,請你列印出這個小北走的nn步以後形成的矩陣。單組輸入 輸入乙個整數你,代表小北走了n n步 n 15 輸出乙個n行的矩陣。矩陣中同一行的數字用乙個空格分開。這裡為了方便觀察沒有按照這個要求輸出 1 2 9 4 3 8 5 6 7 如下 詳...