C語言 回形取數

2021-09-07 09:43:14 字數 1119 閱讀 6803

基礎練習 回形取數  

時間限制:1.0s   記憶體限制:512.0mb

問題描述

回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。

輸入格式

輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。

輸出格式

輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個空格分隔,行末不要有多餘的空格。

樣例輸入

3 31 2 3

4 5 6

7 8 9

樣例輸出

1 4 7 8 9 6 3 2 5

樣例輸入

3 21 2

3 45 6

樣例輸出

1 3 5 6 4 2

1 #include2

intmain()11}

12int sum=m*n;//

矩陣中數的總數

13int

i,j;

14 i=-1

;15 j=0;16

while

(sum)

24 i--;//

回到當前行,因為前面的++i,讓i大了乙個

2526

//向下走不通了左轉就向右走:行數不變,列數+1

27while(a[i][++j]!=-1 && j32 j--;//

回到當前列,因為前面的++j,讓j大了乙個

3334

//向右走不通了左轉就向上走 : 列數不變,行數-1

35//

終止條件:無路可走或已經取過

36while(a[--i][j]!=-1 && i>=0

) 41 i++;//

回到當前行,因為前面的--i,讓i小了乙個

4243

//向上走不通了左轉就向左走:行數不變,列數-1

44while(a[i][--j]!=-1 && j>=0

) 49 j++;//

回到當前列,因為前面的--j,讓j小了乙個50}

51 }

c語言回形取數

問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...

藍橋杯 回形取數 C語言

問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...

十四 回形取數

題目 回形取數 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數...