c二維陣列的用處,C 二維陣列到底該如何定義?

2022-08-22 16:40:17 字數 5731 閱讀 2792

1樓:壬夜柳

1、除了列印矩陣外,還可以計算矩陣,比如相加,相減,轉置等。

2、還有就是有兩種情況,一種是描述一個二維的事物。比如用1 表示牆,用0表示通路,我們可以用二維陣列來描述一個迷宮地圖;用1表示有通路,0表示沒有通路,我們可以用二維陣列來描述幾個城市之間的交通情況。還有一種是描述多個具有多項屬性的事物。

比如有多個學生,每個學生有語文、數學和英語三門成績,我們就可以用二維陣列來描述。對於第二種情況,我們要注意各項屬性應該是同一種資料型別,比如三種學科的成績都是整數。如果出現了姓名(字串屬性),就不能將他們組合到一個二維陣列裡去。

所以不要企圖將不同資料型別的屬性整合到一個二維陣列中去。

2樓:蒼龍de鏈

很多情況都要用到二維陣列

用以下圖形arr打個比方:

0 1 2

3 4 5

6 7 8

1、可以用二維陣列表示x,y,則可知道每個數字的位置。比如0代表的位置是(0,0),可以存成arr[0,0]=0;4代表的位置是(2,2),可以存成arr[2,2]=4。。

2、說個實在的應用,每個**的畫素都是可以看成上面的圖形排列的,因此可以用二維陣列表示,實際應用中也是用的二維陣列處理的。

以上的同樣能用一維陣列表示,但是一維陣列在邏輯上、或者說處理上沒有二維陣列來的方便,直觀。因此引入了二維陣列

3樓:匿名使用者

二維陣列 從大型網遊裡面確定人物或者物品的座標也是可以的簡單點說就舉windows自帶掃雷的例子

一個介面裡面 有雷的位置 陣列裡面元素值為1 安全就為0 點選一個方塊首先判斷方塊對應的陣列的位置是否為1 為1就表示你點到雷了 遊戲重來

如果點的方塊對應的陣列元素裡面是0 就計算這個元素周圍一圈裡面有多少個1 然後相加 並把相加得到的數字(其實就是周圍幾個雷)顯示在你剛才點選的那個方塊上面去

4樓:匿名使用者

一般來說如果有明確的行列關係,能將位置轉換為具體x,y座標的時候,通常就可以考慮二維陣列,比如最常見的棋類遊戲(無論是五子棋、圍棋等等,都是有固定行列的),或者類似的比如說俄羅斯方塊、貪吃蛇,或者象迷宮等等。再大型點比如象網遊,通常一個地圖內也是由n個行和n列組成的,人物在其中行走的時候,簡單點就可以用二維陣列來解決碰撞、尋路這些演算法。

c# 二維陣列到底該如何定義?

5樓:匿名使用者

恩,二維陣列是string[,]

string是陣列的陣列,也就是說,他可以包含不確定個數的字串~

6樓:匿名使用者

真正的二維陣列只有string[,] arr = new string[12, 31] 沒有第二種

至於那個教科書上經常列出來的所謂交叉陣列

比如 string ary = new string[5];

開始我還真以為是微軟弄出來什麼新的資料結構,後來一想,我靠,這個不就是string 型別的一維陣列嗎,事實上也確實是這樣的,就是寫法上有點怪異

我一直覺得 string ary = new string[5]; 這樣寫才比較合理

7樓:

//這樣定義就可以,2行3列的陣列

string[,] fn = new string[2, 3];

//你可以這樣給每個賦值

fn[0, 0] = "string 0-0";

fn[0, 1] = "string 0-1";

fn[0, 2] = "string 0-2";

fn[1, 0] = "string 1-0";

fn[1, 1] = "string 1-1";

fn[1, 2] = "string 1-2";

//這裡可以取個值 看看

string m = fn[1, 1];

8樓:匿名使用者

string[,] arr=new string[12,31]

9樓:匿名使用者

string arr new string[5,5] 這樣定義

10樓:匿名使用者

string arr =new string[陣列長度];

定義的方法有很多的 慢慢了解

c#中 多維陣列很不明白 。 它有什麼作用

11樓:溈莪獨澊

一般會同時初始化陣列中的元素,如下所示:

一維陣列語法

資料型別 陣列名稱=new 資料型別[大小]

對陣列的賦值

宣告時賦值

資料型別 陣列名稱=

宣告後賦值

資料型別 陣列名稱=new 資料型別[大小]

陣列名稱[0]="四川"

foreach(型別 i in 物件/集合陣列)

陣列名.length;用於獲取陣列的元素個數

陣列的角標以0開始

c# 複製**

int array = new int[5];

數值陣列元素的預設值為零,引用元素的預設值為 null,但您可以在建立陣列的過程中初始化值,如下所示:

c# 複製**

int array1 = new int ;

或者甚至這樣來初始化:

c# 複製**

int array2 = ;

陣列的索引從零開始,因此陣列中的第一個元素為元素 0。

c# 複製**

string days = ;

system.console.writeline(days[0]); // outputs "sun"

多維陣列

從概念上來說,兩維陣列類似於網格,三維陣列則類似於立方體。

c# 複製**

// declare multidimension array (two dimensions)

int[,] array2d = new int[2,3];

// declare and initialize multidimension array

int[,] array2d2 = , };

// write elements in a multidimensional array

for (int i=0; i<2; i++)

}// read elements in a multidimensional array

for (int i=0; i<2; i++)

system.console.writeline();

}交錯陣列

多維陣列的一種變體是交錯陣列,即由陣列組成的陣列。交錯陣列是一維陣列,且每個元素自身是一個陣列。作為元素的陣列無需均為相同的大小。

宣告交錯陣列的方式如下:

c# 複製**

int jaggedarray = new int[3];

這樣做會建立一個有 3 個陣列的陣列。這些陣列可以按如下方式初始化:

c# 複製**

jaggedarray[0] = new int[5];

jaggedarray[1] = new int[4];

jaggedarray[2] = new int[2];

12樓:匿名使用者

c#程式怎麼發到這裡來了?

1、new int[4,2]前面就是行數,後面是列數2、int[,]arr2是二維陣列

int[,,]arr3是一個三維資料

兩個陣列不一樣,括號當然不一樣啊。一個{}表示一維3、testarray[2][2]是一個3行3列陣列testarray[2][2]=9

其它自己是看書吧,這個是基礎的東西~

在c#裡怎麼定義二維陣列?

13樓:

c#支援int a[3][3]這種二維陣列定義啊,你說的是賦值吧?迴圈行啊。

不過要迴圈套迴圈。畢竟2個角標呢。

14樓:落月

int arr = new int[3] ;

然後再迴圈賦值就行了。

15樓:匿名使用者

int[,] b = new int[m,n];

for(int i=0;i

16樓:匿名使用者

int ss = new int[3] ;

int[,] sss = new int[9,9];

listssss = new list();

for (int i = 0; i < 5; i++)ssss.add(new int[10]);

ssss[3][3] = 10;

ss[0][4] = 3;

sss[1, 3] = 4;

c#中如何定義二維陣列?

17樓:大野瘦子

這樣://二維陣列,先定義了一維:2

int a = new int[2];

//再定義第二維:3

a[0] = new int[3];

a[1] = new int[3];

byte[,] blob =new byte[5,5];這個是宣告一個交錯陣列,不是二維陣列,和c/c++不同,

byte blob=new byte[5][5];

這種宣告不可能把一個交錯陣列賦值給一個二維陣列:

byte[,] blob =new byte[5][5];

注意事項

二維陣列是按照你定義的型別的一組數,比如int [2,3]那就是說一個兩行三列,每一個元素都是一個整型數的陣列,但是交錯陣列int[2],意思是這個陣列有兩個元素,每一個元素都是一個整型的陣列,但是長度可以不一樣,比如int arr= new int[2];因為每個陣列的元素不一樣,所以後面的不能填值。

int [0]=new int[10];

int [1]=new int[8];

例子(訪問交錯陣列):

int arr = new int[3],

new int[3],

new int[4]

foreach (var item in arr)//最外層得到每個陣列

foreach (var i in item)//內層是去每個陣列中訪問元素

console.write(i);

console.writeline();

18樓:

例:定義一個二維陣列的bb型別

#include

typedef char bb[10][50];

void main()

bb a;

for (int i=0;i<10;i++)for (int j=0;j<50;j++)a[i][j]='b';

擴充套件資料c++動態二位陣列:

以整形為例,row為行數,col為列數

int **data;//儲存二維陣列的指標(指向指標的指標。date=x[0][0]的地址。這樣標會更好。因為sizeof(date)結果為4不可能存下二維陣列)

//以下實現如何申請記憶體data = new int *[row];for (int k = 0; k < row; k++)

//賦值跟普通二維陣列一樣 例如

data[0][0] = 5; //將二維陣列1行1列(c++中稱為0行0列)賦值為5//刪除記憶體for (int i = 0 ; i < row; ++i)delete [ ] data;

c語言二維陣列怎麼表示,C語言二維陣列定義是什麼,然後int a 1 2 是代表什麼意思?怎麼用這個二維陣列

int a m n 就表示一個m行n列的整型二維陣列在c語言中陣列的下標是從0開始的所以,內陣列a的元素個數可以表示為 容a 0 0 a m 1 n 1 例如 include int main return 0 執行結果 1 23 4 4 51 2 3 44 5 int a 3 2 定義的是陣列ba...

c如何宣告二維陣列,c 如何宣告一個二維陣列?

static void main string args for i 2 i 10 i for i 0 i 10 i a i,j console.writeline console.readline string fn new string 12 fn 0 new string fn 1 new s...

C語言二維陣列問題

一維陣列,a表示的就是首元素的地址,a就是首元素。再看二維陣列,二維陣列如a 2 2 兩行兩列。是a 0 0 a 0 1 a 1 0 a 1 1 它不是一維陣列,但可以用一維陣列表示。a i a i a i a i 0 這幾個值是相等的,但意義不同,a i表示第i行的首地址,指向行。a i a i ...