蛇形矩陣(指標與動態記憶體分配)

2021-10-03 23:58:56 字數 1053 閱讀 5472

題目描述

蛇形矩陣,是由1開始的自然數一次排列成的n*n的正方形矩陣,數字依次由外而內的遞增。如 n=3時蛇形矩陣為:

1 2 3

8 9 4

7 6 5

n=6時蛇形矩陣為:

1 2 3 4 5 6

20 21 22 23 24 7

19 32 33 34 25 8

18 31 36 35 26 9

17 30 29 28 27 10

16 15 14 13 12 11

輸入蛇形矩陣寬度,動態分配二維陣列,設定蛇形矩陣並輸出結果。

輸入
測試次數t

每組測試資料一行:陣列大小n(>0)

輸出
對每組測試資料,輸出計算得到的蛇形矩陣。每行元素間以空格分隔,最後乙個元素後無空格。

每組測試資料之間以空行分隔。

樣例輸入
336

2

樣例輸出
1 2 3

8 9 4

7 6 5

1 2 3 4 5 6

20 21 22 23 24 7

19 32 33 34 25 8

18 31 36 35 26 9

17 30 29 28 27 10

16 15 14 13 12 11

1 24 3

#include using namespace std;

void getsnakematrix(int **snake_matrix,int n)

}int main()

getsnakematrix(snake_matrix,n);

for(int i=0;i}

cout

delete snake_matrix;

}return 0;

}

指標 動態記憶體分配

c 中的動態記憶體分配機制 c 中使用new和delete來完成在堆上對動態記憶體的分配和釋放。注.所有指標都應該被初始化 如果指標指向的動態記憶體被釋放或沒有指向合法的位址,就應該將指標設定為nullptr,否則記憶體洩漏 變數 double pvalue pvalue new double pv...

指標 堆記憶體分配(動態記憶體)

一 對於普通陣列來說,在定義或初始化時必須確定元素個數,即下標必須是已知的,即在編譯時已知。例 定義陣列時 int a 6 初始化陣列時,float a 對陣列a來說,雖然沒有下標,但是通過 中的元素個數,可以查出其下標為4。像這樣的格式 int a 錯誤,下標未知 int a n 錯誤,同上 in...

指標 3(動態記憶體分配)

動態記憶體分配 重點 傳統陣列的缺點 1.陣列長度必須事先制定,且只能是常數,不能是變數 例 int a 5 ok int len 5 int a len error 2.傳統形式定義的陣列,該陣列的記憶體程式設計師無法手動釋放 在乙個函式執行期間,系統為該函式中陣列所分配的空間會一直存在,直到該函...