![《C語(yǔ)言程序設(shè)計(jì)》 課件 蔡玲芳 第六章 數(shù)組_第1頁(yè)](http://file4.renrendoc.com/view4/M02/23/0E/wKhkGGYhNNWAP9xrAADSoaG1ee4699.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 蔡玲芳 第六章 數(shù)組_第2頁(yè)](http://file4.renrendoc.com/view4/M02/23/0E/wKhkGGYhNNWAP9xrAADSoaG1ee46992.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 蔡玲芳 第六章 數(shù)組_第3頁(yè)](http://file4.renrendoc.com/view4/M02/23/0E/wKhkGGYhNNWAP9xrAADSoaG1ee46993.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 蔡玲芳 第六章 數(shù)組_第4頁(yè)](http://file4.renrendoc.com/view4/M02/23/0E/wKhkGGYhNNWAP9xrAADSoaG1ee46994.jpg)
![《C語(yǔ)言程序設(shè)計(jì)》 課件 蔡玲芳 第六章 數(shù)組_第5頁(yè)](http://file4.renrendoc.com/view4/M02/23/0E/wKhkGGYhNNWAP9xrAADSoaG1ee46995.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一維數(shù)組的定義與初始化1.一維數(shù)組的定義類型說(shuō)明符數(shù)組名[正整型常量表達(dá)式]
;類型說(shuō)明符:數(shù)組的類型。數(shù)組名同變量名命名規(guī)則相同。常量表達(dá)式指明數(shù)組中元素個(gè)數(shù),必須大于零。可以是數(shù)值常量、符號(hào)常量和字符常量。說(shuō)明floatmark[100]; char str[200];int a[10];例如:1.一維數(shù)組的定義存儲(chǔ)學(xué)生成績(jī)用實(shí)型數(shù)組例如:mark[100],存儲(chǔ)一行文字用字符數(shù)組str[200],存儲(chǔ)一個(gè)4*6的矩陣用二維整型數(shù)組a[4][6]。其中mark、str、a是數(shù)組名。方括號(hào)內(nèi)是數(shù)組的長(zhǎng)度。下標(biāo)的個(gè)數(shù)稱為數(shù)組的維數(shù),mark、str是一維數(shù)組、a是二維數(shù)組。數(shù)組的成員稱為數(shù)組元素。數(shù)組元素的類型稱為該數(shù)組的基類型。數(shù)組mark的基類型是float,數(shù)組str的基類型是char。1.一維數(shù)組的定義說(shuō)明:(1)數(shù)組名后是用方括號(hào)而不是圓括號(hào)。(2)數(shù)組定義中的常量表達(dá)式表示數(shù)組元素個(gè)數(shù)。必須是大于零的常量。如:inta[0],d(6);/*錯(cuò)誤*/intb[-8];/*錯(cuò)誤*/intc[2+3];/*正確*/1.一維數(shù)組的定義(3)C語(yǔ)言中不允許使用變量對(duì)數(shù)組的大小進(jìn)行定義。數(shù)組的說(shuō)明語(yǔ)句必須在可執(zhí)行語(yǔ)句之前。#define N 5int a[N];int n;scanf(“%d” , &n );{int
a[n];……}int
n=10,a[n];2.一維數(shù)組的初始化在數(shù)組定義時(shí)為數(shù)組元素賦初值稱為數(shù)組初始化。(1)對(duì)全部元素初始化。方法:將初值依次寫在花括號(hào){}內(nèi)。如:
inta[5]={2,4,6,
8,10
};存儲(chǔ)形式:存儲(chǔ)單元2.一維數(shù)組的初始化(2)給數(shù)組中部分元素賦初值,其他元素按零值處理。例int
a[9]={1,2};則a[0]=1, a[1]=2,a[2]~a[8]值全為0。(3)對(duì)數(shù)組元素全部賦值可以不指定長(zhǎng)度。例int a[]={0,1,2,3,5};等價(jià)于:int
a[5]={0,1,2,3,5};(4)一維數(shù)組賦初值的個(gè)數(shù)不能超過(guò)數(shù)組總元素的個(gè)數(shù)。例int
a[3]={1,2,3,4};語(yǔ)法錯(cuò)!感謝觀看一維數(shù)組的引用引用C語(yǔ)言規(guī)定,只能引用單個(gè)數(shù)組元素,不能一次引用整個(gè)數(shù)組。數(shù)組元素的引用形式: 數(shù)組名[下標(biāo)] 如a[3]下標(biāo)指出在數(shù)組中第幾個(gè)元素下標(biāo)可以是整型常量、整型變量或整型表達(dá)式。如:a[3]=a[0] +a[i+1];下標(biāo)的值是數(shù)組元素的序號(hào),且從0開始,直到n-1.int a[10], 說(shuō)明數(shù)組a一共有10個(gè)元素,起始值是0。數(shù)組a的10個(gè)元素分別是:a[0]、a[1]、…、a[9]。注意區(qū)分?jǐn)?shù)組的定義和數(shù)組元素的引用。一維數(shù)組的輸入輸出可以對(duì)數(shù)組中任何一個(gè)元素進(jìn)行單獨(dú)的輸入輸出,每個(gè)元素等同于一個(gè)普通變量。數(shù)組的引用離不開循環(huán)。將數(shù)組的下標(biāo)作為循環(huán)變量,通過(guò)循環(huán),就可以對(duì)數(shù)組的所有元素逐個(gè)進(jìn)行處理。(1)數(shù)組元素輸入main(){ charas[26];inti
;for(i=0;i<26;i++)scanf("%c",&as[i]);…...}(2)⑵
數(shù)組元素輸出main(){charas[26];inti
;for(i=0;i<26;
i++)printf("%c",as[i]);…...}控制下標(biāo)是關(guān)鍵引用數(shù)組元素的注意事項(xiàng):數(shù)組中的每個(gè)元素在功能上等價(jià)于一個(gè)一般的變量x。例如:輸入100個(gè)學(xué)生成績(jī),并求出總成績(jī)。float x, sum=0; 簡(jiǎn)單變量for (i=0; i<100; i++){ scanf(”%f”, &x);sum += x;}float m[100],sum=0;for ( i=0; i<100; i++ ){ scanf(”%f”, &m[i]);sum += m[i];}數(shù)組方式優(yōu)點(diǎn):數(shù)據(jù)重用數(shù)據(jù)有序856385148summ[0]m[1]m[2]m[99]82
85
63
78 9085148226316sum
7950827950下標(biāo)與地址的關(guān)系[]為下標(biāo)運(yùn)算符,數(shù)組名、數(shù)組元素是兩種不同性質(zhì)的數(shù)據(jù)。數(shù)組名是數(shù)組的首地址,是一個(gè)地址常量。數(shù)組元素則是數(shù)值。引用數(shù)組元素時(shí),根據(jù)首地址和下標(biāo),自動(dòng)計(jì)算出該元素的實(shí)際地址,取出該地址的內(nèi)容進(jìn)行操作。如引用
mark[2]:(1)計(jì)算2000+2*4=2008(2)取出2008的內(nèi)容2000H86.5mark[0]2004H92.0mark[1]2008H77.5mark[2]200CH52.0mark[3]218CH94.0mark[99]如何使兩個(gè)數(shù)組的值相等解決方法:方法1:
逐個(gè)元素賦值b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];方法2:
通過(guò)循環(huán)賦值int i;for
(i=0;i<4;i++){b[i]=
a[i];}原因:數(shù)組名b表示數(shù)組的首地址,即b[0]的地址,其值不可改變,不能被賦值!main(){inta[4]={1,2,3,4},
b[4];b=
a;}如何使兩個(gè)數(shù)組的值相等從鍵盤上輸入10個(gè)實(shí)型數(shù)存入數(shù)組,然后按輸入順序的逆序輸出這10個(gè)數(shù)。例#include
<stdio,h>main(){float
a[10];int
i;for(i=0;i<10;
i++)scanf("%f",&a[i]);for(i=9;i>=0;i--)printf("%10.2f",a[i]);}對(duì)數(shù)組元素賦值逆序輸出數(shù)組元素[例] 從鍵盤上輸入10個(gè)數(shù),求出其中最大值并輸出。算法分析:采用打擂臺(tái)的方法,先把10個(gè)數(shù)存在數(shù)組中。任意指定某數(shù)為擂主,然后擂主依次與其他數(shù)比較,若某數(shù)大于擂主,則該數(shù)為擂主。循環(huán)結(jié)束,擂主一定是最大的數(shù)。例:
#include<stdio.h
>main(){int
a[10],i,max;for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<10;i++)if(a[i]>max)
max=a[i];printf("max=%d\n",max);}指定第1個(gè)元素為擂主感謝觀看二維數(shù)組的定義與初始化1.二維數(shù)組的定義定義二維數(shù)組的一般方式:類型說(shuō)明符
數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];第一個(gè)下標(biāo)表示行數(shù)第二個(gè)下標(biāo)表示列數(shù)Inta[3][3];例a
a00a01a02a10a11a12a20a21a221.二維數(shù)組的定義存儲(chǔ)形式:二維數(shù)組在內(nèi)存中按行的順序存放,即先存放第一行的元素,再存放第二行的元素。
例:Floata[3][4];1.二維數(shù)組的定義
說(shuō)明:二維數(shù)組除了維數(shù)比一維數(shù)組多一維外,其它性質(zhì)與一維數(shù)組全部類似。二維數(shù)組定義中的常見錯(cuò)誤①
int
a[0][3];用于定義數(shù)組長(zhǎng)度的常量表達(dá)式的值必須是大于0的正整數(shù)。②
int i=3 , j=4 ;
int a[i][j];定義數(shù)組元素的個(gè)數(shù)必須使用常量表達(dá)式,而不能使用變量。2.二維數(shù)組的初始化分行給二維數(shù)組賦初值。(1)將所有數(shù)據(jù)寫在一個(gè){
}內(nèi),按順序賦值。(2)如:int
a[2][3]={{2,3,1},{1,2,3}};
2
3
1
a
1 2 3即按數(shù)組元素在內(nèi)存中排列的順序賦初值。如:int
a[2][3]={2,3,1,1,2,3};2.二維數(shù)組的初始化對(duì)部分元素賦值(3)inta[3][3]={{1},{
},{0,0,1}};相當(dāng)矩陣int
a[2][3]={{5,6},{7,8}};相當(dāng)矩陣:
5 6 0
8
70
0
5 6 7
8 0
int
a[3][3]={{1},{0,1},{0,0,1}};相當(dāng)矩陣:int
a[2][3]={5,6,7,8};相當(dāng)矩陣:1000100011000000012.二維數(shù)組的初始化對(duì)數(shù)組全部元素賦初值(4)第一個(gè)下標(biāo)可省略,但第二個(gè)下標(biāo)不可省略。
例:a[3][4]={{0,1,3,1},{2,1,0,2},{1,1,2,0}};可寫成a[][4]={0,1,3,1,2,1,0,2,1,1,2,0};感謝觀看二維數(shù)組的引用
二維數(shù)組的引用與引用一維數(shù)組元素一樣,也用下標(biāo)法引用二維數(shù)組元素。
二維數(shù)組元素表示形式:數(shù)組名[下標(biāo)1][下標(biāo)2]下標(biāo)1和下標(biāo)2是整型常量、整型變量或整型表達(dá)式。其編號(hào)從0開始的。注意下標(biāo)不要越界!276.3.2二維數(shù)組的引用例:若
inta[2*5][3*4],i=15;則使用
a[3*3][0],a[1][i-5]都是合法的。說(shuō)明:數(shù)組名a代表的是數(shù)組a在內(nèi)存中的首地址,可以用數(shù)組名a來(lái)代表數(shù)組元素a[0][0]的地址。數(shù)組名是常量,不可對(duì)它賦值。286.3.2二維數(shù)組的引用inta[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;
j++)scanf("%d",
&a[i][j]);29inta[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;
j++)printf("%5d",
a[i][j]);二維數(shù)組的輸入和輸出:采用兩重循環(huán)方式進(jìn)行。1. 二維數(shù)組的輸入 2. 二維數(shù)組的輸出6.3.2二維數(shù)組的引用感謝觀看二維數(shù)組程序示例[例1]
將一個(gè)矩陣a
2×3轉(zhuǎn)置存到另一個(gè)矩陣b
3×2中。
3 6
1 2 3
4 5 6
a
,
b
2
5
1 4
分析:用數(shù)組a、b分別代表矩陣a、b;a
數(shù)組的行數(shù)必須要等于b
數(shù)組的列數(shù)。執(zhí)行:b[j][i]=a[i][j];
即可完成轉(zhuǎn)換。涉及到兩個(gè)下標(biāo)的,一般用兩重循環(huán)。6.3.3二維數(shù)組程序示例#include<stdio.h
>intmain(
){int
a[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf(“arraya:\n”);for(i=0;i<2;
i++){ for(j=0;j<3;
j++){printf("%5d",
a[i][j]);b[j][i]=a[i][j];
}printf("\n");}printf("arrayb:
\n");for(i=0;i<3;
i++){ for(j=0;j<2;j++)printf("%5d",b[i][j]);printf("\n");
}return
0;}
運(yùn)行結(jié)果如下:array
a:1 2 34 5 6array
b:1 42 53 633#include<stdio.h
>intmain(
){ inti,j,row=0,colum=0,
max;int
a[3][4]={{1,2,3,4},{9,7,4,6},{-1,2,0,8}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;
j++)if(
a[i][j]>max){
max=a[i][j]; row=i; colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum);return0;}運(yùn)行結(jié)果:
max=9,row=1,colum=0[例2] 求3×4矩陣中最大元素的值及其所在行和列號(hào)。
8
1 2
1 2 3 4
a
9 7 4 6
0[例3] 求方陣A4*4的轉(zhuǎn)置陣,并將該轉(zhuǎn)置陣輸出array
a:1 2 3 45 6 7 89 10 11 1213 14 15 16rotated
a:1 5 9 132 6 10 143 7 11 154 8 12 16矩陣轉(zhuǎn)置算法1:for(i=0;i<4-1;i++)for(j=i+1;j<4;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; }矩陣轉(zhuǎn)置算法2:for(i=1;i<4;i++)for(j=0;j<i;j++){ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}程序運(yùn)行演示感謝觀看字符數(shù)組的定義用來(lái)存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組。 C語(yǔ)言用字符數(shù)組存放字符串,字符數(shù)組中的各元素依次存放字符串的各字符。格式:char
數(shù)組名[常量表達(dá)式]例:char
c[6];C 數(shù)組具有6個(gè)元素,可以存放長(zhǎng)度等于或小于5的字符串。6.4.1字符數(shù)組的定義CHINA\039強(qiáng)調(diào):字符串實(shí)際占有單元的數(shù)量等于字符串長(zhǎng)度+1。定義時(shí)應(yīng)注意考慮元素總個(gè)數(shù)應(yīng)比實(shí)際長(zhǎng)度多1。字符串的存儲(chǔ)例:char
c[6]=“CHINA”;該數(shù)組在計(jì)算機(jī)中存儲(chǔ)的形式為串長(zhǎng)=5c[0] c[1] c[2] c[3] c[4] c[5]感謝觀看字符數(shù)組的初始化CHINA\042c[0]c[1]c[2]c[3]c[4]c[5]1.用單個(gè)字符對(duì)字符數(shù)組初始化例如:charc[6]={‘C’,‘H’,‘I’,‘N’,‘A’,’\0’};把5個(gè)字符分別賦給c[0]到c[4]。在內(nèi)存中存放情況:串長(zhǎng)=56.4.2字符數(shù)組的初始化說(shuō)明:43(1)
初值的個(gè)數(shù)不能超過(guò)數(shù)組元素的個(gè)數(shù),否則語(yǔ)法錯(cuò)初值的個(gè)數(shù)小于數(shù)組長(zhǎng)度,系統(tǒng)自動(dòng)添入結(jié)束符‘\0’
初值的個(gè)數(shù)與數(shù)組元素相等,定義時(shí)可省略長(zhǎng)度
因字符串常量自動(dòng)加\0,因此常人為地在字符數(shù)組后加一個(gè)‘\0’。2. 用字符串常量對(duì)字符數(shù)組初始化:[例]44(1)charch[6]={"CHINA"};(2)charch[6]="CHINA";/* 省略 { } */(3)charch[]
="CHINA";/*
省略長(zhǎng)度值
*/(4)chard[12]="How are you"與 char
d[]={‘H’,’o’,’w’,‘
‘,’a’,’r’,’e’,‘
‘,’y’,’o’,’u
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)就業(yè)市場(chǎng)的變化及職業(yè)定位分析
- 現(xiàn)代建筑設(shè)計(jì)與智能化技術(shù)的融合實(shí)踐
- 生態(tài)文明產(chǎn)業(yè)園的教育培訓(xùn)與人才培養(yǎng)策略
- 團(tuán)委國(guó)慶節(jié)觀影活動(dòng)方案
- 術(shù)后康復(fù)神經(jīng)外科手術(shù)患者的居家照護(hù)
- Unit 2 Wildlife Protection Reading and Thinking 第二課時(shí)說(shuō)課稿-2024-2025學(xué)年高一英語(yǔ)人教版(2019)必修第二冊(cè)
- 2024秋八年級(jí)歷史上冊(cè) 第一單元 中國(guó)開始淪為半殖民地半封建社會(huì) 第3課 太平天國(guó)運(yùn)動(dòng)說(shuō)課稿 新人教版001
- 2024年五年級(jí)英語(yǔ)上冊(cè) Unit 6 My e-friend第1課時(shí)說(shuō)課稿 牛津譯林版
- 《100 以內(nèi)的加法和減法(二)-進(jìn)位加》(說(shuō)課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版001
- 2024年一年級(jí)品生下冊(cè)《春天在哪里》說(shuō)課稿 山東版
- 2025年中國(guó)南方航空股份有限公司招聘筆試參考題庫(kù)含答案解析
- 商務(wù)部發(fā)布《中國(guó)再生資源回收行業(yè)發(fā)展報(bào)告(2024)》
- 山東省濟(jì)南市2024-2024學(xué)年高三上學(xué)期1月期末考試 地理 含答案
- 2025年福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 實(shí)施彈性退休制度暫行辦法解讀課件
- 江蘇省駕校考試科目一考試題庫(kù)
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學(xué)2023-2024學(xué)年七上期末數(shù)學(xué)試題(解析版)
- 2024-2030年中國(guó)自動(dòng)光學(xué)檢測(cè)儀(AOI)市場(chǎng)競(jìng)爭(zhēng)格局與前景發(fā)展策略分析報(bào)告
- 咨詢公司績(jī)效工資分配實(shí)施方案
- 2025新人教版英語(yǔ)七年級(jí)下單詞表
- 中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-氣管切開非機(jī)械通氣患者氣道護(hù)理
評(píng)論
0/150
提交評(píng)論