求5x5階螺旋方陣

2021-09-30 18:15:00 字數 1399 閱讀 1168

/**

*    實驗題目:

*        求5x5階螺旋方陣

*    實驗目的:

*        掌握陣列演算法設計

*    實驗內容:

*        以下是乙個5x5階螺旋方陣。編寫程式,輸出該形式的nxn(n<10)階方陣(順時針方向旋進)

*           1  2  3  4  5

*           16 17 18 19 6

*           15 24 25 20 7

*           14 23 22 21 8

*           13 12 11 10 9

*/#include

#define max_len 10

/*------------------求n階螺旋方陣a-----------------*/

/***   螺旋方陣:

*       是指對任意給定的n,將1到n×n的數字從左上角第1個格仔開始,

*   按順時針螺旋方向順序填入n×n的方陣裡。

*   以n=5為例

*       1  2  3  4  5

*       16 17 18 19 6

*       15 24 25 20 7

*       14 23 22 21 8

*       13 12 11 10 9

*   演算法思路:

*       用二維陣列a存放n階螺旋方陣。偶數階螺旋方陣共有m(m=n/2)圈,

*   奇數階螺旋方陣共有m(m=n/2+1)圈,對於第i(i從0到m-1共執行m次)圈

*   迴圈,產生該圈上橫行的數字,產生該圈右豎行的數字,產生該圈下

*   橫行的數字,產生該圈左豎行的數字。最後輸出該方陣。**/

static void helix_matrix(int a[max_len][max_len], int n)

// 產生該圈右豎行的數字

for(j = i + 1; j < n - i; j++)

// 產生該圈下橫行的數字

for(j = n - i - 2; j >= i; j--)

// 產生該圈左豎行的數字

for(j = n - i - 2; j >= i + 1; j--)}}

int main(void)

printf("\n");

}return 0;

}測試結果:

輸入n(n<10):5

5階數字方陣如下:

1   2    3    4     5

16  17  18  19   6

15  24  25  20   7

14  23  22  21   8

13  12  11  10   9

5X5矩陣調換!

將乙個5x5矩陣中最大的元素放在中心,4個角分別放4個最小的元素,寫一函式實現之!include int main printf n return 0 void change int p temp p 12 p 12 pmax pmax temp temp p p pmin pmin temp pm...

5x5矩陣調整大小位置!

將乙個5x5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素 順序為從左到右,從上倒下依次從小到大存放 寫一函式實現它!include int main return 0 void change int p temp p 12 將 p 12 的值儲存到temp p 12 是該矩陣的中心元素 序...

SQL大賽 5X5方格棋盤難題

盛拓傳媒杯 sql大賽第一期答題,本期題目 5x5方格棋盤難題 在5x5的方格棋盤中 如圖 每行 列 斜線 斜線不僅僅包括對角線 最多可以放兩個球,如何擺放才能放置最多的球,這樣的擺法總共有幾種?輸出所有的擺法。要求 用一句sql實現。輸出格式 從方格棋盤第一行至第5行,每行從第一列到第5列依次輸出...