問題描述
給定乙個包含m行n列的m x n矩陣,程式設計按照螺旋順序,輸出該矩陣中的所有元素。
輸入有多個矩陣。
每個矩陣資料的第1行有兩個整數m和n,接著是乙個mxn矩陣的描述,有m行,每行有n個整數
輸出對每個矩陣資料,按照螺旋順序輸出矩陣陣列的元素。
輸入樣例
3 31 2 3
4 5 6
7 8 9
輸出樣例
1 2 3 6 9 8 7 4 5
思路:按照題意模擬即可,見**,時間複雜度o(mn),每個點訪問一次
#include
using namespace std;
const
int maxn =
500;
int a[maxn]
[maxn]
; bool vis[maxn]
[maxn]
;//標記陣列
intmain()
}int x =
0, y =0;
printf
("%d"
,a[x]
[y])
;//第乙個點特殊處理
vis[x]
[y]=1;
int sum = m * n, tot =1;
//總點數和當前已經輸出的點數
while
(tot < sum)
while
(x +
1< m &&
!vis[x+1]
[y])
while
(y -
1>=0&&
!vis[x]
[y-1])
while
(x -
1>=0&&
!vis[x-1]
[y])
}putchar
('\n');
}return0;
}
螺旋矩陣和蛇形矩陣
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...
蛇形矩陣 和螺旋矩陣
1.蛇形方陣 1 2 3 6 5 4 7 8 9 外層控制層數,內層根據列數控制方向 0 則往右走 n 1則往左走 include include include define size 100 int a size size int main int argc,const char argv el...
蛇形矩陣與螺旋矩陣
自己寫的蛇形矩陣 蛇形矩陣就是在nxn矩陣格仔上從左上到右下以 之 字型增加或減少,像蛇盤繞著的形狀。本程式從左上開始盤旋一直到右下達到最大值 include using namespace std define n 10 輸入要更改的矩陣大小 void main k 1,j 0,i 0,s1 4 ...