當前位置:首頁 » 編程語言 » c語言中二維數組省略行數怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中二維數組省略行數怎麼寫

發布時間: 2023-02-08 19:01:26

1. 在int b[][3]={{1},{3,2},{4,5,6},{0}};中,a[2][2]的值是

二維數組省略行數排列,結合題目,可寫為下列形式
{{1}{ }{ }
{3}{2}{ }
{4}{5}{6}
{0}{ }{ }
{ }{ }{ }
.........
}
確定列數,題目對每行部分元素定義,未定義元素因為要滿足列數,空位用0代替
a[2][2]即為第三行第三列元素,答案為6
同理可知a[1][1]為2,a[0][2]為空位,看成0

2. c語言中 二維數組要怎麼輸入怎麼換行啊

scanf那行里的a[i][j]要寫成&a[i][j],輸入就正常的輸入就行了,其實scanf讀入數字的時候,數字可以用空格、回車或者TAB間隔,比如說一個2x2的數組,你輸入
10 11
12 13
或者輸入10 11 12 13都是可以的。

3. C語言程序設計(12)

第一處填空,是個三重循環:
for(i=0;i<N;i++)
for(j=0;j<N+1;j++)
for(k=j+1;k<N;k++)
這里,i是數組的行標號,第一重循環表示依次對N行數組分別排序
然後j和k是列下標,一個二重循環排序的過程,其原理如下:
比如2 3 5 1 0 按從小到大排序
首先,j=0 k=1~4,就是數字2分別與3 5 1 0比較,把小的放到2的位置來
一輪之後,就變成 0 3 5 2 1
第二輪,j=1 k=2~4 ,就是數字3分別與5 2 1比較,把最小的放到3的位置
就是依次找出最小的放在最前,找出第二小的,放第二個位置……
依次這樣循環到最後,就能完成排序

第二個填空,是要完成「第0行從小到大排序,第1行從大到小排序,第2行從小到大排序,第3行從大到小排序」這樣的功能,這樣填:
if(i%2==1?a[i][j]<a[i][k]:a[i][j]>a[i][k])
表示,如果i%2==1(即i是奇數行標),則採用a[i][j]<a[i][k]這個判斷條件,否則就採用a[i][j]>a[i][k]這個判斷條件
這樣就能實現偶行從小到大排序,奇行從大到小排序咯

=============================================
1
outarr(aa);
這樣是把數組的地址當作實參傳遞過去,而,形參是這樣
void outarr(int a[N][N])
這說明白形參是接受的數組的值啊???
這是怎麼回事?

這里不是按地址傳遞,定義void outarr(int a[N][N])表示的是按數組整個傳遞,並且數組做為參數傳遞有個特點,就是一定是按引用傳遞
知道什麼是按引用傳遞嗎?簡單理解,就是在函數裡面,對該參數的修改,會影響主函數中該參數的值

====================================================
2
在主函數中
數組的定義是這樣的
int aa[N][N]
表示未知行和列
但初始化又是這樣
int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};
這樣能算對嗎?

這里數組的定義不是未知行和列
我們語庋規則規定,數組定義,必須用明確定義行列的數目
其實這里的N不是一個變數,而已經變成一個數字了,看上面的定義:
#define N 4
這一句定義,等於告訴編譯器,每逢碰到N,就把它換成4的意思
那麼其實數組定義就是int aa[4][4]

=====================================================
3
第一個被調函數
void sort(int a[][N])
它裡面省略的行,我知道,二維數組可以這么寫,但,在這個被調函數中,要使用到行數啊,它不給出,後面,怎麼計算呢?

這個程序中,行數N在前面已經定義了
在整個程序的過程中,N不是一個變數,而是表示數字4!!