論一維陣列與二維陣列之間的除餘關係

2021-08-31 22:29:44 字數 776 閱讀 4830

論一維陣列與二維陣列之間的除餘關係

大家學程式設計這麼多年,對陣列再熟識不過了。而且經常性的用到。可我們很少用到它他們之間的轉換,也許你們經常用到,只是我而已,我不能把我的認知加給大家。一維陣列就相當於乙個自然數集,從0,起到很大的乙個序列。從陣列的角度就是一維陣列,可陣列的引用及檢索就是用序列,可以說一維陣列的角色很多,功能也最大。而二維陣列的下標都是一維的。可以說這乙個遞迴的組成。這只是其中的乙個關係,相互組成,一維構成了二維,二維用一維檢索。這不是主要關係,我要講的是轉換關係及數學中的除餘關係。我先講解一下示例:

如乙個序列,0。1,2,3,4,5,6,7,8,9,10,11,12,13,...這裡不舉多了。

再看二維陣列:

┌ ┐│ a00,a11,a12,a13 │

│ a10,a11,a12,a13 │

│ a20,a21,a22,a23 │

這就是乙個二維陣列吧。如果我們要把它按行展開就是這樣a00,a11,a12,a13,a10,a11,a12,a13,a20,a21,a22,a23現在它們是按一維的形式出現了,哪麼下標不再是雙維的了,新的下標就是0,1,2,3,4,5,6,7,8,9,...

這樣的我們應該如何快速轉換呢?我們先用col表標列,用row表示行,用c_n表示一行的個數,用i表示一維的下標。哪麼就公式,大家可以當公式記下來的。

公式如下:row=math.floor(i/c_n)表示取整;

col=i%c_n;

是不是開簡單呀,所以你可以用a[math.floor(i/c_n),i%c_n]檢索二維陣列了。這樣就完了從二維到一維的轉換。

二維陣列與一維陣列之間的轉化

一維陣列轉換為二位陣列 include include define row 3 define col 2 intmain int argc,char ar int arr2d row col int i,j 一維維整型陣列轉換為二維整型陣列 for i 0 i 二維整型陣列列印顯示 for i 0...

一維陣列與二維陣列

1.一維陣列的定義格式為 型別說明符 陣列名 常量表示式 在定義陣列時,需要指定陣列中元素的個數,方括弧中的常量表示式用來表示元素的個數,即陣列長度。常量表示式中可以包括常量和符號常量,但不能包含變數。c語言不允許對陣列的大小作動態定義,即陣列的大小不依賴於程式執行過程中變數的值。在定義陣列時對陣列...

陣列(一維陣列 二維陣列)

陣列概述 c 陣列從零開始建立索引,即陣列索引從零開始。c 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。這些其實和泛型有些類似,陣列的操作沒有泛型方便,但是效能卻不是泛型所能比擬的 宣告陣列時,方括號 必須跟在型別後面,而不是識別符號後面。在c 中,將方括號放在...