題目描述
蛇形矩陣,是由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 38 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.傳統形式定義的陣列,該陣列的記憶體程式設計師無法手動釋放 在乙個函式執行期間,系統為該函式中陣列所分配的空間會一直存在,直到該函...