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

2021-10-01 11:07:55 字數 1663 閱讀 1305

一維陣列轉換為二位陣列

#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;i)printf

("\n");

}system

("pause");

return0;

}

二維陣列轉化為一維陣列

#include

#include

//二維陣列轉一維

/*以列為主的二維陣列要轉為一維陣列時,是將二維陣列由上往下一列一列讀入一維陣列,此時

索引的對應公式如下所示,其中row與column是二維陣列索引,loc表示對應的一維陣列索引:

loc = column + row*行數*/

intmain()

,,};

printf

("原二維陣列:\n");

for(

int i =

0; i <

3; i++

)printf

("\n");

}printf

("進行轉換:\n");

int number[3*

3];for

(int i =

0; i <

3; i++)}

for(

int i =

0; i <3*

3; i++

)printf

("%d"

, number[i]);

printf

("\n");

system

("pause");

return0;

}

三維陣列轉化為一維陣列

#include

#include

//三維轉一維

/*如果是三維陣列,則公式如下所示,其中i(個數u1 )、 j(個

數u2 )、 k(個數u3)分別表示三維陣列的三個索引:

以列為主:loc =i*u2*u3 + j*u3 + k

以行為主:loc =k*u1*u2 + j*u1 + i*/

intmain()

,,},

,,},

,,},

};for(

int i =

0; i <3;

++i)

printf

("\n");

}}printf

("開始轉換:\n");

int number[3*

3*3]

;for

(int i =

0; i <

3; i++)}

}for

(int n =

0; n <3*

3*3; n++

)return0;

}

二維陣列與稀疏陣列之間的轉化

1.稀疏陣列介紹 如果原陣列的非0元素的個數有n個,則稀疏陣列有n 1行,列數不變,一共有三列 第一行儲存的資料 原始陣列的行 原始陣列儲存的列 原始陣列中非0的元素個數 第二行儲存的資料 第乙個非0元素所在的行 第乙個非0元素所在的列 第乙個非0元素的值 2.二維陣列轉化為稀疏陣列 遍歷二維陣列,...

一維陣列與二維陣列

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

稀疏陣列轉化二維陣列

public class sparse system.out.println system.out.println 轉化為稀疏陣列儲存 獲取有效值的個數 判斷是否有值 int sum 0 臨時變數,計數用的 for int i 0 i 9 i system.out.println 有效值的個數 su...