小白養成記 (6) 方形填數

2021-10-01 02:37:04 字數 1189 閱讀 7673

描述:

在乙個n*n的方陣中,填入1,2,……n*n個數,並要求構成如下的格式:

例如:n=5

13 14 15 16  1

12 23 24 17  2

11 22 25 18  3

10 21 20 19  4

9  8  7  6  5

n=616 17 18 19 20  1

15 30 31 32 21  2

14 29 36 33 22  3

13 28 35 34 23  4

12 27 26 25 24  5

11 10  9  8  7  6

輸入每個測試檔案只包含一組測試資料,每組輸入乙個n。(1<=n<=20)

輸出輸出構成的方陣,每個數字之間只有乙個空格,行首,行末沒有空格

解題思路:

(1)可以看出是從方陣的右上角的1開始,即將a [ 1 ] [ n ] 初始化為1。初始迴圈時令i=1; j=n;

依次向下,向左,向上,向右走,重複這四個過程。則需要四個迴圈來分別控制向下,向左,向 上,向右。                                  且下乙個值=上乙個值+1

(2)下一步是判斷四個迴圈時的條件:共有n行n列,則向下走的終止條件是i1,向上走的終止條件是i>1,向右走的終止條件是j(3)下面判斷四個迴圈的終止條件:迴圈1次,數值加1。當數值為n*n時跳出迴圈,即需要定義乙個變數tot為1,當tot>n*n時跳出迴圈,因為a [ 1 ] [ n ]已經被定義過了,所以只要迴圈n*n-1次,且從a [ 2] [ n ]開始迴圈即可。

**如下:

#includeint main()

; int i=1,j=n,tot=1;

a[1][n]=1;

while(tot1)&&(a[i][j-1]==0)) //向左走

while((i>1)&&(a[i-1][j]==0)) //向上走

while((j}

for(i=1;i<=n;i++) //輸出資料

printf("%d",a[i][j]);

printf("\n");

} return 0;

}

運維小白養成記

2020.2.24 千鋒逆戰班,北京雲計算2001 這是在千鋒逆戰班學習的第15天,我們今天學習了磁碟陣列raid 檔案的查詢以及檔案的壓縮和解壓。這是乙個好的開始,拼搏到能為力,堅持到感動自己!噢力給!分享一下今天的學習內容 先是一波只是回顧。知識回顧帶 的重點 許可權物件 ugo 分類 rwx ...

小白養成記 (3) 函式篇

感覺函式好難,雖然它是乙個殼子.還是直接看題吧 1 輸出100以內的全部素數,每個素數佔六列 include includeint prime int m int main printf n return 0 int prime int m return 1 2 驗證哥德 猜想 include in...