C 分別實現螺旋矩陣 回形矩陣 蛇形矩陣

2021-10-10 22:32:07 字數 2288 閱讀 7487

1、螺旋矩陣

題目描述

輸入n,試列印輸出n*n的 螺旋矩陣(每個元素佔4位場寬)。

輸入例如n=7,矩陣如下圖:

輸出

原始碼:

#include

#include

using

namespace std;

//螺旋矩陣

intmain()

;int cnt =1;

int x =

0, y =0;

int dx =

0, dy =1;

while

(cnt <= n*n)

else

if(dx ==1&&

(x >= n-

1|| arr[x+1]

[y]!=0)

)else

if(dy ==-1

&&(y <=

0|| arr[x]

[y-1]!=

0))else

if(dx ==-1

&&(x <=

0|| arr[x-1]

[y]!=0)

) cnt++;}

for(

int i =

0; i < n; i++

) cout << endl;

}return0;

}

2、回形矩陣題目描述

輸入n,試列印輸出n*n的 回形矩陣(每個元素佔4位場寬)。

輸入第一行為乙個整數n(1≤n≤20),

例如n=7,矩陣如下圖:

輸出

原始碼:

#include

#include

using

namespace std;

//回形矩陣

intmain()

;int cnt =1;

int x =

0, y =0;

int dx =

0, dy =1;

int temp =0;

while

(cnt <= n * n)

else

if(dx ==1&&

(x >= n -

1|| arr[x +1]

[y]!=0)

)else

if(dy ==-1

&&(y <=

0|| arr[x]

[y -1]

!=0))

else

if(dx ==-1

&&(x <=

0|| arr[x -1]

[y]!=0)

) cnt++;}

for(

int i =

0; i < n; i++

) cout << endl;

}return0;

}

3、蛇形矩陣題目描述

輸入n,試列印輸出n*n的 蛇形矩陣(每個元素佔4位場寬)。

輸入例如n=7,矩陣如下圖:

輸出

原始碼:

#include

#include

using

namespace std;

//蛇形矩陣

intmain()

;int dx =-1

, dy =

1, num =

1, x =

0, y =0;

int flag =0;

//標記是否進入右下部分

while

(num <= n * n)

else

y++;}

elseif(

(x > n -

1|| y <0)

&& dx ==

1&& dy ==-1

)else

x++;}

num++;}

for(

int i =

0; i < n; i++

) cout << endl;

}return0;

}

蛇形(回形)矩陣

如下 蛇形 回形 矩陣的實現 解題思路 整體思路 每一圈的數值都是連續的,所以我們一圈一圈的賦值 對一圈的初始化 1 設定 p,p 每一圈最左上角的座標 q,q 每一圈最右下角的座標 2 對每一圈分四部 上,右,下,左 分別初始化 為了使這四步對稱 賦值個數相同 按下圖這樣初始化 1的位置初始化 上...

螺旋矩陣 蛇形矩陣

問題描述 給定乙個包含m行n列的m x n矩陣,程式設計按照螺旋順序,輸出該矩陣中的所有元素。輸入有多個矩陣。每個矩陣資料的第1行有兩個整數m和n,接著是乙個mxn矩陣的描述,有m行,每行有n個整數 輸出對每個矩陣資料,按照螺旋順序輸出矩陣陣列的元素。輸入樣例 3 31 2 3 4 5 6 7 8 ...

螺旋矩陣和蛇形矩陣

include include using namespace std define pi 3.14 class a define n 6 int s n n int matrix 8 define maxsize 100 int a maxsize maxsize void creat sz in...