C語言問題。定義二維陣列,C語言問題。定義一個二維陣列

時間 2021-09-11 22:25:36

1樓:ok洛陽水席

#include

int main()

sum=0;

for(i=0;i<5;i++)

return 0;

}樓主基本沒有大錯誤,只是不夠仔細,用來儲存特定值的變數使用前一定要初始化,如本例中的最大值,最小值,下標,都是必須初始化的!

整型與整型運算會得到整型,1/2=0,5/4=1;系統會捨去小數部分。只要將其中一個提升至浮點型即可,如1.0/2,5/4.

0,如果是兩個整型變數,可以寫成(float)a/b,即可使得得到浮點型結果!

2013 5 25 7:05

1l耗時 4min

2樓:匿名使用者

第七行scanf("%d",&arr[5][6]);這句就有問題了,首先應改為scanf("%d",&arr[i][j]);還有其他錯誤,修改後:

#include

int main()

max=arr[0][0];

for(i=0;i<5;i++)

for(j=0;j<6;j++)

if(maxarr[i][j])

else ;

for(i=0;i<5;i++)

} }

return 0;}

3樓:匿名使用者

scanf("%d",&arr[5][6]);

應該改為:

scanf("%d",&arr[i][j]);

c語言關於定義二維陣列的問題

4樓:焮欣

首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始地址,第二維就是某組資料中的某個值.其次,你要知道a[4]所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度(元素總個數/4,如果不能整除,則長度加1,此時還應該有幾個沒有賦初值的陣列元素).

而a[3]的意思從表面上看可以成立,但問題是編譯器不能直接識別其第二維的確切長度(你可以考慮,如果總的初值個數為2時,可以認為a的第二維長度為1,也可以是2,.......),這樣就會產生錯誤.所以,可以a[4]=這樣定義,而不能定義a[3]=。

對於你補充的問題,其實我已經講了.因為賦初值是5個元素,所以5/4=1,但除不盡,所以要加1,即實際陣列a實質上定義為a[2][4],其內元素為:

1 2 3 4

5 0 0 0 (後面的三個0是系統預設值)希望對你有所幫助.^-^

5樓:匿名使用者

首先 假如定義一個一維陣列 int ary;

缺少了一維陣列的長度 系統無法按大小分配空間;

但假如int ary = ;

就可以根據初始化的元素個數來把ary定義成相當於ary[2];

這應該能懂

再次c語言中沒有多維陣列的概念 我們平常說的二維陣列其實是“陣列的陣列” c語言對多維陣列的定義也是定義成

"陣列的陣列的陣列的..."

所以 當定義二維陣列int a[4] = ;

其實是 “定義了兩個以[4]為長度的陣列”(這說法可能不準確)所以在定義二維陣列並初始化時 需要指明第二維的長度 好讓編譯器根據初始化元素的個數來確定陣列的大小

文字表述欠缺專業 但 意思是這樣 希望能明白呵呵

6樓:佳樂比海

主要是分配記憶體的問題.

a[i][j]是陣列的陣列,意思是定義i個元素的陣列,每個元素都是一個含有j個元素的陣列.

a[4]是定義了n個含有4個元素的陣列,如:

a[4]=,,}是定義了3個"含有4個元素的陣列"的陣列.雖然3個自定義的,但是是確定的數字。程式可以分配記憶體.

而a[3]是定定義了3個"含有n個元素的陣列"的陣列.如:

a[3]=},由於n的值是不確定的(如上有3個的,2個的),所以程式無法為這個陣列分配記憶體空間.

c語言中二維陣列的定義 30

7樓:司馬刀劍

二維陣列定義的一般形式是:

型別說明符 陣列名[常量表示式1][常量表示式2]其中常量表示式1表示第一維下標的長度,常量表示式2 表示第二維下標的長度

int a[3][4];

8樓:丨紅色石頭

好像是陣列後面的賦值和前面的陣列長度不能同時為空的吧

c語言中二維陣列下標問題

9樓:嘟

a可以理解為二重指標,a[0]理解指標,a[0][0]是對這個地址進行訪問了

。其實回[ ]的意義 可以理解成* 。

a[ i ]其實就相當於*(a+i) 所以原答來的就相當於 *(*(a+i)+j) +的優先順序比 *的高 所以外面那個括號可以去掉 就變成了 **(a+i)+j 。

明白了嗎?

10樓:朱豬丹

這裡a指的是整個陣列,而a[0]指二維陣列第一行的元素,a[0][0]指陣列中的第一個元素。

11樓:匿名使用者

a為二重指標,a[0]是指標,a[0][0]是元素,

12樓:匿名使用者

樓上回答的不錯,頂一個。

c語言二維陣列賦值問題 100

13樓:gta小雞

先直接將陣列所有元素賦為0,然後按照使用者輸入逐個給元素賦值,這樣沒有賦值到的元素自然是0。

C語言二維陣列的排序問題,c語言二維陣列

不是。這麼說吧,陣列名本身就是指標,指向陣列的第一個元素。至於你所說的呼叫呼叫二級 二維吧 陣列,難道不是如普通變數般直接呼叫嗎?根據問題補充說,這是不允許的,main 函式的形參是固定的不能傳遞指標。而一般的自定義函式只能用傳遞首地址的形式來傳遞二維陣列,例子如下 定義 int a x y int...

關於C語言定義二維陣列的問題,c語言關於定義二維陣列的問題

以下能正確定義二維陣列的是 以下能正確定義 陣列的是 去掉二維兩字 a int a 3 語法錯,沒帶初始化,不允許用 空白 不允許 陣列大小不定。b int a 正確定義了陣列,是一維陣列,陣列元素只有1 個,初始化數值為 2 3 就是 6。c int a 3 語法錯,花括號裡沒填初始化數值。d i...

C語言中關於二維陣列的問題,c語言關於定義二維陣列的問題

巢琨瑜 float a 5 是定義了一個指向陣列的指標,如果要把它當成二維陣列的話,相當於列數為5,行數可以動態分配。如 float a 5 int n 2 定義行數為2 a new float n 5 int sum 0 for int i 0 i 對於你定義的這個陣列,它表示有5個float 型...