二維陣列 之 蛇形遍歷

2021-09-05 09:45:01 字數 949 閱讀 1216

例題

用數字1,2,3,4,...,n*n這n2個數蛇形填充規模為n*n的方陣。

蛇形填充方法為:

對於每一條左下-右上的斜線,從左上到右下依次編號1,2,...,2n-1;按編號從小到大的順序,將數字從小到大填入各條斜線,其中編號為奇數的從左下向右上填寫,編號為偶數的從右上到左下填寫。

比如n=4時,方陣填充為如下形式:

1  2  6  7

3  5  8  13

4  9  12 14

10 11 15 16

輸入

輸入乙個不大於10的正整數n,表示方陣的行數。

輸出輸出該方陣,相鄰兩個元素之間用單個空格間隔。

樣例輸入

4
樣例輸出 

1 2 6 7

3 5 8 13

4 9 12 14

10 11 15 16

思路 :首先蛇形遍歷建立在斜對角線上。斜對角線遍歷:二維陣列在斜對角每倆個相鄰的元素的關係是【行加減1且列減加1】。然後從每條斜對角任意一端的元素開始 【行加減1且列減加1】則可以得到一條斜對角線上所有元素。最後可以從第一行上到最後一列上依次遍歷(或者第一列到最後一行),就可以得到所有的斜對角線上的元素。 如想要蛇形,每次按照奇偶次數,變換行列。遍歷如此故填充亦是如此。

#includeusing namespace std;

int main()

else

}} for(int i=2;i<=n;i++) //最後一列 (第一行已經輸出故i=2)

else

}} for(int i=1;i<=n;i++)

printf("\n");

} return 0;

}

遍歷二維陣列

二維陣列的初始化和如何用foreach輸出,需要注意的是,tdarray.length是二維陣列的個數,tdarray.length i 是第i 1的陣列的長度 public static void main string args for int i 0 i 獲取二維陣列中的最大值max int ...

二維陣列及二維陣列的遍歷

一 如果陣列的元素是一維陣列 則該陣列是二維陣列 如果陣列的元素是二維陣列 則該陣列是三維陣列 注意 二維陣列的長度 是陣列內一維陣列的個數 獲取二維陣列內的元素 第一步獲取該元素在哪乙個一維陣列內 第二步獲取該元素在一維陣列的那個位置 false var arr 1,2,3 var arr1 你好...

陣列 二維陣列 遍歷 異常

建立物件的原則 先父類後子類 載入內容原則 先靜態後成員 this 當前new的物件 執行 找new的物件 方法 多型情況 呼叫重寫方法 屬性 就近原則 new 的步驟 值傳遞 基本資料型別是值傳遞 引用資料型別 位址值的傳遞 測試物件導向的使用 陣列 相同資料型別的資料的有序集合 變數 儲存單個資...