目錄
1.簡(jiǎn)介
2.二維數(shù)組的聲明格式
3.對(duì)二維數(shù)組元素的輸出
4.二維數(shù)組的行列轉(zhuǎn)換
4.1思路介紹
4.2代碼實(shí)現(xiàn)
1.簡(jiǎn)介
??????? 二維數(shù)組的交換可以作為動(dòng)態(tài)規(guī)劃問(wèn)題的基礎(chǔ),本文將詳細(xì)講述二維數(shù)組交換問(wèn)題,以便讀者后期更容易理解動(dòng)態(tài)規(guī)劃問(wèn)題。
2.二維數(shù)組的聲明格式
????????
int num[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
???????? 如此代碼段,聲明了一個(gè)三行四列的二維數(shù)組。我們可以把他理解為一個(gè)矩陣。
???????? 注意:數(shù)組是從0開(kāi)始的。及元素1對(duì)應(yīng)的是num [0][0];這點(diǎn)和坐標(biāo)很相似 ????
3.對(duì)二維數(shù)組元素的輸出
這里我們首先用一維數(shù)組的元素輸出進(jìn)行類(lèi)比
??????? 我們首先定義一個(gè)一維數(shù)組然后用這個(gè)例子來(lái)類(lèi)比二維數(shù)組。我們使用一個(gè)變量i來(lái)控制數(shù)組元素的輸出。
int a[3]={1,2,3}; for ( i = 0; i < 3; i++) { printf("%d",a[i]); }
接下來(lái)我將說(shuō)明二維數(shù)組的輸出方法
??????? 結(jié)合下圖我們來(lái)直觀的理解下二維數(shù)組的位置關(guān)系。我們可以看出i[0][0]是初始的第一排,然后我們把二維數(shù)組看成兩個(gè)一維數(shù)組。
???????? 如圖所示,我們直觀看到,我們對(duì)二維數(shù)組num[i][j]進(jìn)行遍歷需要改變i和j的值。也就是兩個(gè)for循環(huán)進(jìn)嵌套,外層控制行,內(nèi)層控制列。代碼如下:
int num[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12}; int i,j; for ( i = 0; i < 3; i++) { for ( j = 0; j < 4; j++) { printf("%d\t",num[i][j]); } printf("\n\n"); }
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
4.二維數(shù)組的行列轉(zhuǎn)換
4.1思路介紹
????????(1)這里先介紹一下紅酒杯交換法 。我們想把A,B兩個(gè)酒杯內(nèi)的液體互換,這時(shí)候我們需要一個(gè)空酒杯C,先把A中液體倒進(jìn)C,然后把B中液體倒進(jìn)A,然后在把C中液體倒進(jìn)B。
??????? (2)同理我們可以利用一個(gè)中間變量?jī)?chǔ)存num [1][2]的值然后進(jìn)行取賦給一個(gè)變量,然后在把他的鏡像num [2][1]的值賦給他,最后將常量賦值回去。這就完成了互換。
示意圖如下:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-815491.html
4.2代碼實(shí)現(xiàn)
詳細(xì)解釋見(jiàn)注釋?zhuān)?span toymoban-style="hidden">文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815491.html
/* 實(shí)現(xiàn)二維數(shù)組的翻轉(zhuǎn) */ #include<stdio.h> int main(int argc, char const *argv[]) { int num[3][3]={ //聲明一個(gè)二維數(shù)組 {1,2,3}, {4,5,6}, {7,8,9}}; int i,n,cunt; //i,n進(jìn)行行和列的計(jì)算,cunt進(jìn)行承接 for (i = 0; i < 3; i++)//打印原數(shù)組 { for ( n = 0; n < 3; n++) { printf("%d ",num[i][n]); } printf("\n"); } for ( i = 0; i < 3; i++)//進(jìn)行行的遍歷 { for( n = i; n < 3; n++)//進(jìn)行列的遍歷 { cunt=num [i][n]; //對(duì)空酒杯賦值 num [i][n]=num [n][i];//交換 num [n][i]=cunt; //再次賦值交換完畢 } } printf("\n\n"); for (i = 0; i < 3; i++) //打印輸出 { for ( n = 0; n < 3; n++) { printf("%d ",num[i][n]); } printf("\n"); } return 0; }
到了這里,關(guān)于【行列轉(zhuǎn)換】C語(yǔ)言二維數(shù)組入門(mén)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!