1樓:bc警長
先說二維,可以這麼理解:
int n[3]有3個int
那麼,int m[5][3]有5個int[3]賦值時:
n[1]=3把3給1號
m[4]=m[4]是個int[3]型別,這麼賦值,也就是這麼賦值:
m[4]的[0]是5:m[4][0]=5
m[4][1]=9
m[4][2]=4
懂了嗎?三維甚至更多維大同小異,比如
int k[4][5][3]有4個int[5][3]這個概念應該不難理解的,就是各種型別,不停的加下標,加下標,加下標,下標,標……
曾寫過一個模擬7段碼(看看紅綠燈上的倒計時是怎麼顯示的),共有2行顯示,每行10個數字,每個數字7段,整個系統狀態就是用一個bool[2][10][7]確定的
2樓:夢中夢
在c語言中,多維陣列的存放規律都是第一維下標變化的最慢,越往後維數越高,下標變化越快,例如:對於三位陣列a[2][2][2],其賦值順序就是:
a[0][0][0]
a[0][0][1]
a[0][1][0]
a[0][1][1]
a[1][0][0]
a[1][0][1]
a[1][1][0]
a[1][1][1]
總結的說,就是「維數最高優先儲存」
至於什麼情況用三維陣列,這要看你程式設計思想了,當你想編的程式抽象成三維的東西,就用三維陣列來表示,就如矩陣似的,我們把矩陣看成是一個圖,二維的,所以用了二維陣列
希望可以幫助你
3樓:匿名使用者
三維陣列和二維陣列一維陣列一樣啊,使用的時候用3個下標,下標的起點也是0
初始化也就是二維陣列的推廣,因為是行序優先存放,所以沒有完全初始化的後面的元素自動賦初值0
如果有三個控制量就用三維陣列啊,比方是三維空間xyz
4樓:燕曉
這個得需要計算機專業知識才行。
三維陣列怎麼理解c語言
5樓:金色潛鳥
先理解二維陣列,int a[3][4]; 理解成3行4列。例如:
1 2 3 4 // 第1行
5 6 7 8 // 第2行
9 10 11 12 // 第3行。 你可以理解成 行索引號 是直角座標y值,列索引號 是直角座標x值.
現在變3維 int a[2][3][4]; 理解成深度(或高度)有2層的 3行4列 的陣列。
原來的 1 到 12 數值在 第一層,現在 有了第二層,第二層 數值是
13 14 15 16
17 18 19 20
21 22 23 34
所以 3 維陣列 int a[z][y][x], 就有 z 層 y*x 大小的矩陣。
6樓:
元素是二維陣列的一維陣列
c語言中三維陣列的賦值問題
7樓:匿名使用者
int limit[4][5][2]=, , , , ,, , , , ,
, , , , ,
, , , , };
你這樣定義是:int limit[20][2]。int limit[4][5][2]應該是
int limit[4][5][2]=, , , , },, , , , },
, , , , },
, , , , } };
c語言,三維陣列 140
8樓:孟羽然
(4-1+1)*(6+2+1)*(6-0+1) + (2+2+1)*(6-0+1) + (3-0+1)
=4*9*7 + 5*7 + 4
=252 + 35 + 4
=291
78 + 291*4
=78 + 1164
=1242
c語言三維陣列(本人新手)
9樓:匿名使用者
…………
…………………………………………………………
樓主,你真的明白什麼叫做三維陣列嗎?
你之前不是學c的吧?看這個樣子應該是學的指令碼語言?php還是python?或者說是ruby?
總之有一點需要注意
int a
這個裡面,a 的型別是 int,a[0]的型別是int
int a
這個裡面,a 的型別是 int,a[0]的型別是int,a[0][0]的型別是int
int a
這個裡面,a 的型別是 int,a[0]的型別是int,a[0][0]的型別是int,a[0][0][0]的型別才是int
你初始化的時候是這麼寫的:
int a = ,},,
,55};……你不感覺奇怪嗎?
a的第一個元素確實是int型,第二第三個怎麼就成了int型了?第四個乾脆直接成了int型……
並且最主要的最主要……c語言的陣列需要一個長度!並且必須是常量的長度!否則你只能使用指標!
10樓:匿名使用者
要陣列指定大小
int a[x][y][z],x可以省略,y和z不能省略
11樓:匿名使用者
輸出格式沒有,就是printf("%d",......),後面的輸出表示式也不對,三維陣列表示方法不正確,你想輸出啥
c語言中的三維陣列是怎麼回事?
12樓:匿名使用者
你就想象成全是一維的,c原來設計也只有一維。你可以想象成有個特殊的陣列裡面每個元素又是一個陣列,而這個陣列裡面的每個元素他又是一個陣列。你要說用線性代數可以空間理解,但是3維以上你給我空間想象一下啊,我想不到。
指標當然要佔記憶體。雖然它指向某個記憶體的地方,但是他同樣需要某個東西指向它啊。打個比方好比它就是個路標,指向某個方向。
但是機器編譯需要知道指向路標的路標一樣。我是這樣理解的。
13樓:匿名使用者
不管是幾維的,都可以看成是一維的。而且實際的實現也是一維的。
所以形如a的三維陣列,你完全可以將其轉換成一維的來使用.
如果不這樣的話
你就需要一點線性代數的知識了.行列式,矩陣......
再有什麼不懂的,可以問我.
14樓:匿名使用者
你想問的什麼啊?具體一點!
用c語言,動態三維陣列
15樓:匿名使用者
1、先說二維,可以這麼理解:
int n[3]有3個int
那麼,int m[5][3]有5個int[3]賦值時:
n[1]=3把3給1號
m[4]=m[4]是個int[3]型別,這麼賦值,也就是這麼賦值:
m[4]的[0]是5:m[4][0]=5
m[4][1]=9
m[4][2]=4
懂了嗎?三維甚至更多維大同小異,比如
int k[4][5][3]有4個int[5][3]2、例程:
int*** creategrid(int m,int n,int t)
{int*** tt = null;
tt = (int***)malloc(sizeof(int)*m);
for(int i=0;i
16樓:
#include
int *** creategrid(unsigned m, unsigned n, unsigned t);/*建立整形三維陣列*/
void freegrid(int *** c1,unsigned m,unsigned n);/*釋放整形三維陣列*/
static void free1(int *** c1,unsigned n);
static void free2(int *** c1,unsigned m,unsigned n,unsigned k);
int *** creategrid(unsigned m, unsigned n, unsigned t)/*建立整形三維陣列*/
if(i!=m)/*第二維分配失敗,釋放以前分配到的記憶體*/
for(i=0;i!=m;++i)/*分配第三維*/
if(j!=n)
break;
}if(j!=n)/*第三維分配失敗,釋放以前分配到的記憶體*/
return c1;
}static void free1(int *** c1,unsigned m)/*釋放前m個指標*/
static void free2(int *** c1,unsigned m,unsigned n,unsigned k)
void freegrid(int *** c1,unsigned m,unsigned n)/*釋放記憶體*/
17樓:匿名使用者
int*** creategrid(int m,int n,int t)
}return tt;
}void freegrid(int*** tt,int m,int n,int t)
free(tt[i]);
}free(tt);
tt = null;}}
c語言三維陣列問題
18樓:匿名使用者
多個相同的二維陣列可以用三維陣列表示。或者說三維陣列是以二維陣列為元素的陣列。
比如一個城市有10個學校,每個學校有10個班,每個班有40個學生,那麼表示這10個學校的學生的語文成績的時候,就可以用一個三維資料a[10][10][40]來儲存。
19樓:匿名使用者
一位陣列 你可以看成是 單個元素組成的陣列那 二維陣列 你可以看成是 一維陣列 組成的陣列三位陣列 自然就是 二維陣列組成的陣列完畢
20樓:西平司馬
三維是一個立方體,你把a [x] [y] [z]中的x,y,z理解成三維空間座標,這樣總能理解了吧
21樓:匿名使用者
測試通過,你
去試試吧!
#include
#include
int data[10][5][3] = ;
void display(int num)for (i = 0; i<5; i++)printf(" ");
}printf("\n");}}
int main(int argc, char* argv)
C語言中 二維陣列與三維陣列在使用過程中主要起什麼作用?它表
實際上是資料的一種組織方式,你可以想象成 二維陣列 行x列的長方形 三位陣列 長x寬x高 的長方體 在c語言中,陣列的意義,就是讓陣列的名字可以當作指標來使用,這樣就能很方便的定位資料。比如你有一個陣列arry 300 300 300 那麼他能儲存300 300 300 27000000個資料,如果...
c語言一維陣列和二維陣列怎麼去理解詳細點啊
i是迴圈變數,和陣列a沒什麼關係。a i 是指a陣列中的下標為i的值的那個元素的值 c語言一維陣列和二維陣列怎麼去理解?詳細點啊 i是迴圈變數,和陣列a沒什麼關係。a i 是指a陣列中的下標為i的值的那個元素的值 c語言程式 二維陣列 一維陣列 b i b j i 先取得b j i 的值,比如說是2...
matlab三維擬合,matlab 三維擬合
x 12.82 22.94 17.47 8.2 8.69 5.93 4.46 y 45.36 15.38 42.9 24.24 19.22 19.07 8.83 z 0.225 0.23 0.155 0.145 0.06 0.045 0 f a,x x 1,a 1 a 2 x 2,a 3 a 4 a...