要使用數(shù)組必須在程序中先定義數(shù)組,告訴計(jì)算機(jī):由哪些數(shù)據(jù)組成數(shù)組,數(shù)組中有多少元素,屬于什么數(shù)據(jù)類(lèi)型,否則計(jì)算機(jī)不會(huì)自動(dòng)識(shí)別一批數(shù)據(jù),以下是對(duì)于數(shù)組的定義:
一維數(shù)組的初始化int a[10]; //表示定義了一個(gè)整型數(shù)組,數(shù)組名為a,此數(shù)組包含十個(gè)整型元素。
一維數(shù)組定義一般形式為: 類(lèi)型說(shuō)明符 數(shù)組名[常量表達(dá)式];
注:一維數(shù)組是指只有一個(gè)下標(biāo)的數(shù)組,它用來(lái)表示一組具有相同類(lèi)型的數(shù)據(jù),數(shù)據(jù)類(lèi)型幾乎包含了所有類(lèi)型,比如:int,float,char,指針,結(jié)構(gòu)體等類(lèi)型。
定義數(shù)組必須要進(jìn)行初始化,如若不初始化系統(tǒng)并不會(huì)自動(dòng)初始化為0,因?yàn)榫植孔兞刻幱诙褩^(qū),數(shù)值則為隨機(jī)。例如:
int a[10]; //例如這樣,程序并不會(huì)報(bào)錯(cuò)。
常見(jiàn)的幾種初始化
第一種
int a[5]={0}; // 即將第一個(gè)元素初始化為0,系統(tǒng)則會(huì)將剩余的元素自動(dòng)初始化為0;
如若初始化為 int a[5]={1};//則是將第一個(gè)元素初始化為1,其它則為0,其它數(shù)也是如此。
第二種
int a[5]={1,2,3,4,5}; //直接對(duì)數(shù)組所有元素進(jìn)行初始化,
第三種
int a[5]={1,2,3}; //即對(duì)部分元素進(jìn)行初始化,其余未進(jìn)行初始化的元素系統(tǒng)自動(dòng)初始化為0。
第四種
int a[]={1,2,3,4,5}; //為數(shù)組全部元素進(jìn)行初始化,但不指定數(shù)組長(zhǎng)度,這時(shí)候數(shù)組的大小由初始化時(shí)列表元素個(gè)數(shù)決定,即數(shù)組長(zhǎng)度為5。
注:數(shù)組的命名同變量的命名規(guī)則一樣:
怎么引用一維數(shù)組變量命名規(guī)則:
1,變量名只能由字母,數(shù)字,下劃線(xiàn)組成,且必須以字母或下劃線(xiàn)開(kāi)頭。
2,不能包含空格,標(biāo)點(diǎn)符號(hào)以及運(yùn)算符等其它在c語(yǔ)言中有特殊意義的符號(hào)。
在定義數(shù)組并且對(duì)它進(jìn)行其中的元素賦值以后,就可以引用數(shù)組中的元素,但是只能引用數(shù)組元素,而不能一次性調(diào)用數(shù)組全部元素,在程序中,想引用數(shù)組的某一個(gè)元素可以通過(guò)數(shù)組名和下標(biāo)來(lái)引用數(shù)組中的元素。一般格式為
假設(shè)定義一個(gè)數(shù)組 a[5]={1,2,3,4,5};
引用的一般格式為:數(shù)組名[下標(biāo)];
如若要引用第一個(gè)元素:a[0];//就可以調(diào)用1這個(gè)元素了。
注:數(shù)組的下標(biāo)默認(rèn)從0開(kāi)始,上面的數(shù)組下標(biāo)依次為0,1,2,3,4,在訪(fǎng)問(wèn)數(shù)組元素時(shí),下標(biāo)不能超出這個(gè)范圍。
若要將數(shù)組整體輸出有兩種方法:
第一種
#includeint main()
{int i;
int a[5]={1,2,3,4,5};
printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);//printf整體輸出
return 0;
}
第二種
#includeint main()
{int i;
int a[5]={1,2,3,4,5};
for (i = 0; i< 5; i++) //循環(huán)依次進(jìn)行輸出
{printf("%d ", a[i]);
}
return 0;
}
注:數(shù)組之間不能進(jìn)行比較,也不能進(jìn)行運(yùn)算。
案例 對(duì)五個(gè)元素依次賦值1-5,要求逆序輸出#includeint main()
{int i;
int a[5] = {1,2,3,4,5 }; //對(duì)數(shù)組初始化
for (i = 4; i>= 0; i--) // 大下標(biāo)為4,每進(jìn)行一次循環(huán),i的值減1,直到i=0
{printf("%d ", a[i]);
}
return 0;
}
用數(shù)組來(lái)處理Fibonnacci數(shù)列問(wèn)題題目介紹:裴波那契數(shù)列指的是這樣一個(gè)數(shù)列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233即這個(gè)數(shù)列從第3項(xiàng)開(kāi)始,每一項(xiàng)都等于前兩項(xiàng)之和。注:每五個(gè)要進(jìn)行一次換行
#includeint main()
{int i;
int f[20] = {1,1 };//因?yàn)閺牡谌齻€(gè)開(kāi)始,先將第一個(gè)和第二個(gè)元素初始化為1
for (i = 2; i<= 20; i++)
{f[i] = f[i - 2] + f[i - 1]; //i從2開(kāi)始,即第三個(gè)數(shù)開(kāi)始,每一項(xiàng)都等于前兩項(xiàng)的和
}
for (i = 0; i< 20; i++)
{if (i % 5 == 0) //能被5整
{ printf("\n"); //進(jìn)行換行
}
printf("%10d", f[i]); //在循環(huán)內(nèi)輸出fibonacci數(shù)列
}
return 0;
}
怎么定義二維數(shù)組二維數(shù)組的定義與一維數(shù)組類(lèi)似,其語(yǔ)法格式為:
二維數(shù)組的初始化類(lèi)型說(shuō)明符 數(shù)組名[常量表達(dá)式][常量表達(dá)式];//前者表達(dá)式表示行寬,后者表示列寬。
int a[2][3]; //表示定義一個(gè)行寬為2,列寬為3的整型二維數(shù)組。
第一種
按行直接進(jìn)行賦值 int a[2][3]={{1,2,3},{4,5,6}};
括號(hào)內(nèi)的第一個(gè)括號(hào)代表的是第一行數(shù)組的元素,第二個(gè)括號(hào)代表第二行數(shù)組的元素;
第二種
將所有元素寫(xiě)在一個(gè)括號(hào)內(nèi) int a[2][3]={1,2,3,4,5,6};
和第一種一樣,第一行的元素為1,2,3 第二行的元素為4,5,6 輸出結(jié)果為以下,用循環(huán)輸出時(shí),記得在外循環(huán)進(jìn)行換行
1 2 3
4 5 6
第三種
對(duì)數(shù)組的部分元素進(jìn)行賦值 int a[2][3]={{1},{1}}; //定義部分元素,其它元素為0;輸出結(jié)果為;
1 0 0
1 0 0
怎么引用二維數(shù)組第四種
對(duì)數(shù)組進(jìn)行初始化時(shí)行寬表達(dá)式可以省略 int a[][3]={1,2,3,4,5,6};
行寬會(huì)根據(jù)列寬以及元素自動(dòng)識(shí)別
注:列寬不能省略。
二維數(shù)組引用的表示形式為
數(shù)組名 [下標(biāo)][下標(biāo)]
和一維數(shù)組一樣,二維數(shù)組的下標(biāo)默認(rèn)從0開(kāi)始。
數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如
#includeint main()
{int i, j;
int a[2][3] = {1,2,3,4,5,6 }; //定義兩個(gè)二維數(shù)組
int b[2][3] = {6,5,4,3,2,1 };
b[1][2] = a[1][2]; //原本b[1][2]應(yīng)該等于1,這里將a[1][2]的值賦給b[1][2],a[1][2]的值為6
printf("%d", b[1][2]); //輸出則為6
return 0;
}
案例
輸出一個(gè)二維數(shù)組#includeint main()
{int i, j;
int a[2][3] = {1,2,3,4,5,6 }; //定義一個(gè)二行三列的數(shù)組
for (i = 0; i< 2; i++) //i運(yùn)行兩次
{for (j = 0; j< 3; j++) //i為0時(shí)j運(yùn)行三次,即輸出下標(biāo)為0,1,2的數(shù)組
{ printf("%d ", a[i][j]);
}
printf("\n"); //當(dāng)輸出1,2,3d第一列時(shí)換行
}
return 0;
}
數(shù)組行和列的元素互換,存到另外一個(gè)二維數(shù)組中題目要求:將一個(gè)二維數(shù)組行和列的元素互換
解題思路:定義兩個(gè)數(shù)組,數(shù)組a為2行3列,數(shù)組b為3行2列,將數(shù)組a[i][j]元素和數(shù)組b[j][i]
的元素進(jìn)行交換。
#includeint main()
{int a[2][3] = {{1,2,3},{4,5,6} };
int i, j;
int b[3][3]; //定義兩個(gè)數(shù)組,進(jìn)行交換元素互換
printf("數(shù)組a的元素為\n");
for (i = 0; i< 2; i++)
{for (j = 0; j< 3; j++)
{ printf("%5d", a[i][j]); //先輸出a數(shù)組
b[j][i] = a[i][j]; //將行和列進(jìn)行交換
}
printf("\n");
}
printf("數(shù)組b的元素為\n");
for (i = 0; i< 3; i++)
{for (j = 0; j<= 1; j++)
{ printf("%5d", b[i][j]); //再輸出數(shù)組b
}
printf("\n");
}
return 0;
}
數(shù)組作為函數(shù)參數(shù)注:當(dāng)用數(shù)組名作為函數(shù)參數(shù)時(shí),傳遞的并不是數(shù)組中的每一個(gè)元素的值,而是將實(shí)參數(shù)組的首地址賦值給形參,形參數(shù)組取得該首地址后相當(dāng)于有了實(shí)參的數(shù)組,實(shí)際上實(shí)參和形參為同一個(gè)數(shù)組,因此當(dāng)行參數(shù)組發(fā)生變化時(shí),實(shí)參數(shù)組也隨之變化。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁(yè)名稱(chēng):【C語(yǔ)言---------數(shù)組】-創(chuàng)新互聯(lián)
瀏覽路徑:http://jinyejixie.com/article46/coegeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、Google、網(wǎng)站制作、用戶(hù)體驗(yàn)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容