c語言課件一維數(shù)組_第1頁
c語言課件一維數(shù)組_第2頁
c語言課件一維數(shù)組_第3頁
c語言課件一維數(shù)組_第4頁
c語言課件一維數(shù)組_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)?輸入十個(gè)整數(shù),依次輸出這十個(gè)數(shù)及最大值。?輸入十個(gè)整數(shù),依次輸出這十個(gè)數(shù)及最大值。定義變量n1,n2n10,max輸入n1,n2n10的值給max賦值 max=n1max=n2maxn2YNmax=n10maxn10YN輸出n1,n2n10,max?輸入十個(gè)整數(shù),依次輸出這十個(gè)數(shù)及最大值。?輸入十個(gè)整數(shù),依次輸出這十個(gè)數(shù)及最大值。main() int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,max; scanf(%d,&n1); scanf(%d,&n2); scanf(%d,&n3); scanf(%d,&n4); scanf(%d,&n5); scan

2、f(%d,&n6); scanf(%d,&n7); scanf(%d,&n8); scanf(%d,&n9); scanf(%d,&n10); max=n1; if (maxn2) max=n2; if (maxn3) max=n3; if (maxn4) max=n4; if (maxn5) max=n5; if (maxn6) max=n6; if (maxn7) max=n7; if (maxn8) max=n8; if (maxn9) max=n9; if (maxn10) max=n10; printf(%4d,n1); printf(%4d,n2); printf(%4d,n3);

3、 printf(%4d,n4); printf(%4d,n5); printf(n); printf(%4d,n6); printf(%4d,n7); printf(%4d,n8); printf(%4d,n9); printf(%4d,n10); printf(n); printf(max=%dn,max);對(duì)上例進(jìn)行分析:對(duì)上例進(jìn)行分析:變量定義太麻煩,要是求變量定義太麻煩,要是求100100個(gè)數(shù)的最大值?個(gè)數(shù)的最大值?變量有共同點(diǎn):數(shù)據(jù)類型相同、變量名相似變量有共同點(diǎn):數(shù)據(jù)類型相同、變量名相似如果有這樣的一組變量:名如果有這樣的一組變量:名+ +下標(biāo)下標(biāo) ,就方便多了,就方便多了程序中類

4、似的語句重復(fù)出現(xiàn)多次程序中類似的語句重復(fù)出現(xiàn)多次能使用循環(huán)結(jié)構(gòu)該多好能使用循環(huán)結(jié)構(gòu)該多好數(shù)組數(shù)組+ +循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)數(shù)組數(shù)組 一維數(shù)組一維數(shù)組 用一組具有相同名字、不同下標(biāo)的用一組具有相同名字、不同下標(biāo)的下標(biāo)變量下標(biāo)變量來代表一組具來代表一組具有相同性質(zhì)的一組數(shù)據(jù),這就是數(shù)組。有相同性質(zhì)的一組數(shù)據(jù),這就是數(shù)組。 數(shù)組是同類型數(shù)據(jù)的集合,集合中的每個(gè)數(shù)據(jù)稱為數(shù)組是同類型數(shù)據(jù)的集合,集合中的每個(gè)數(shù)據(jù)稱為數(shù)組元數(shù)組元素或下標(biāo)變量素或下標(biāo)變量,數(shù)組元素的,數(shù)組元素的類型相同、個(gè)數(shù)確定。類型相同、個(gè)數(shù)確定。 下標(biāo)變量中如果只用一個(gè)下標(biāo),則稱為一維數(shù)組,用兩個(gè)下標(biāo)變量中如果只用一個(gè)下標(biāo),則稱為一維數(shù)組,

5、用兩個(gè)下標(biāo)則稱之為二維數(shù)組,用三個(gè)下標(biāo)稱之為三維數(shù)組,依下標(biāo)則稱之為二維數(shù)組,用三個(gè)下標(biāo)稱之為三維數(shù)組,依此類推。此類推。 第六單元第六單元 數(shù)數(shù) 組組1. Introduction2. Strategy3. Challengers Forward4. Conclusion 學(xué)學(xué) 習(xí)習(xí) 內(nèi)內(nèi) 容容 6.1 一維數(shù)組(一維數(shù)組(重點(diǎn)重點(diǎn)) 6.2 二維數(shù)組(二維數(shù)組(重點(diǎn)重點(diǎn)) 6.3 字符數(shù)組與字符串(字符數(shù)組與字符串(難點(diǎn)難點(diǎn)) 6.4 程序舉例程序舉例本章要點(diǎn)本章要點(diǎn) 什么是數(shù)組什么是數(shù)組? ? 為什么要使用數(shù)組為什么要使用數(shù)組? ? 如何定義數(shù)組如何定義數(shù)組? ? 如何引用數(shù)組元素如何引

6、用數(shù)組元素? ? 二維數(shù)組的元素在內(nèi)存中按什么方式存放二維數(shù)組的元素在內(nèi)存中按什么方式存放? ? 什么是字符串什么是字符串? ? 字符串結(jié)束符的作用是什么字符串結(jié)束符的作用是什么? ? 如何實(shí)現(xiàn)字符串的存儲(chǔ)和操作,包括字符串的輸入和輸如何實(shí)現(xiàn)字符串的存儲(chǔ)和操作,包括字符串的輸入和輸出出? ? 怎樣理解怎樣理解C C語言將字符串作為一個(gè)特殊的一維字符數(shù)組語言將字符串作為一個(gè)特殊的一維字符數(shù)組? ?一維數(shù)組一維數(shù)組 6.16.1.1 6.1.1 一維數(shù)組的定義一維數(shù)組的定義 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 長(zhǎng)度長(zhǎng)度 ; 例如:例如: int a5;int a5; 定義了一個(gè)一維整型數(shù)組,數(shù)組名為定

7、義了一個(gè)一維整型數(shù)組,數(shù)組名為a a,有,有5 5個(gè)數(shù)組個(gè)數(shù)組元素。這元素。這5 5 個(gè)元素分別為個(gè)元素分別為: : a0 a0、a1a1、a2a2、a3a3、a4a4一維數(shù)組是數(shù)組中最簡(jiǎn)單的一維數(shù)組是數(shù)組中最簡(jiǎn)單的它的元素只需要用數(shù)組名加一個(gè)下標(biāo),就能惟它的元素只需要用數(shù)組名加一個(gè)下標(biāo),就能惟一確定一確定要使用數(shù)組,必須在程序中先定義數(shù)組要使用數(shù)組,必須在程序中先定義數(shù)組一維數(shù)組的定義一維數(shù)組的定義6.1.1(1) (1) 數(shù)組名用合法的標(biāo)識(shí)符命名,與變量的命名方法相同。數(shù)組名用合法的標(biāo)識(shí)符命名,與變量的命名方法相同。(2) (2) 方括號(hào)中的長(zhǎng)度表示數(shù)組的長(zhǎng)度,也即數(shù)組元素的個(gè)數(shù)。方括號(hào)中

8、的長(zhǎng)度表示數(shù)組的長(zhǎng)度,也即數(shù)組元素的個(gè)數(shù)。(3) (3) 數(shù)組元素的序號(hào)是從數(shù)組元素的序號(hào)是從0 0開始。開始。如上面如上面a5a5中的中的5 5表示表示a a數(shù)組有數(shù)組有5 5個(gè)元素,下標(biāo)從個(gè)元素,下標(biāo)從0 0開始,注意不能開始,注意不能使用數(shù)組元素使用數(shù)組元素a5a5?!咀⒁庾⒁狻?4) C(4) C語言語言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即定義行中的,即定義行中的數(shù)組長(zhǎng)度可以包括常量和符號(hào)常量,但不能包括變量。數(shù)組長(zhǎng)度可以包括常量和符號(hào)常量,但不能包括變量。錯(cuò)誤的定義:錯(cuò)誤的定義:int n=10; int n=10; int an; int an; / /*

9、*因?yàn)橐驗(yàn)閚 n為變量為變量* */ /正確的定義:正確的定義: #define N 10 #define N 10 main()main() int aN; int aN;/ /* *N N為符號(hào)常量為符號(hào)常量* */ / 一維數(shù)組的定義一維數(shù)組的定義6.1.1(5) (5) 數(shù)組元素具有定義行中指定的數(shù)據(jù)類型。它可以是任數(shù)組元素具有定義行中指定的數(shù)據(jù)類型。它可以是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。同一數(shù)組中所有元素的同一數(shù)組中所有元素的數(shù)據(jù)類型都是相同的。數(shù)據(jù)類型都是相同的。下面是常見的一維數(shù)組的定義:下面是常見的一維數(shù)組的定義:int a10;int a1

10、0; / /* *定義整型數(shù)組定義整型數(shù)組a a,它有,它有1010個(gè)元素個(gè)元素* */ /char str20;char str20; / /* *定義字符型數(shù)組定義字符型數(shù)組strstr,它有,它有2020個(gè)元素個(gè)元素* */ / float b5,c10; float b5,c10; / /* *定義實(shí)型數(shù)組定義實(shí)型數(shù)組b b和和c c,b b有有5 5個(gè)元素,個(gè)元素,c c有有1010個(gè)元素個(gè)元素* */ / 一維數(shù)組的定義一維數(shù)組的定義6.1.1for(i = 0; i n; i+) printf(%d , ai);數(shù)組:數(shù)組:相同類型相同類型數(shù)據(jù)的數(shù)據(jù)的有序集合有序集合,在內(nèi)存中連

11、續(xù)存放。,在內(nèi)存中連續(xù)存放。 由數(shù)組名和下標(biāo)惟一地確定每個(gè)數(shù)組元素由數(shù)組名和下標(biāo)惟一地確定每個(gè)數(shù)組元素 每個(gè)元素都屬于同一類型每個(gè)元素都屬于同一類型優(yōu)點(diǎn):表述簡(jiǎn)潔,可讀性高;便于使用循環(huán)結(jié)構(gòu)優(yōu)點(diǎn):表述簡(jiǎn)潔,可讀性高;便于使用循環(huán)結(jié)構(gòu)0 1 2 9 a0 a1 a9a3 5 2 8 1 22 89 0 -1 76.1.2一維數(shù)組元素的引用一維數(shù)組元素的引用 數(shù)組在定義之后即可引用其中的數(shù)組元素,其引用形式為:數(shù)組在定義之后即可引用其中的數(shù)組元素,其引用形式為: 數(shù)組名數(shù)組名 下標(biāo)下標(biāo) 下標(biāo)只能為整型常量或整型表達(dá)式。如果為小數(shù),下標(biāo)只能為整型常量或整型表達(dá)式。如果為小數(shù),C C語言編語言編譯時(shí)將

12、自動(dòng)取整。譯時(shí)將自動(dòng)取整。C C語言中只能逐個(gè)引用數(shù)組元素,而不能一次語言中只能逐個(gè)引用數(shù)組元素,而不能一次引用整個(gè)數(shù)組。引用整個(gè)數(shù)組。 如:如: a0=a5+a7-a2*3 合法合法 int n=5,a10; an=20;合法合法將數(shù)字將數(shù)字0 0-9 9裝入一個(gè)整型數(shù)組裝入一個(gè)整型數(shù)組a a中,并輸出中,并輸出【例例6.16.1】解題思路:解題思路:定義一個(gè)長(zhǎng)度為定義一個(gè)長(zhǎng)度為1010的數(shù)組,數(shù)組定義為整型的數(shù)組,數(shù)組定義為整型要賦的值是從要賦的值是從0 0到到9 9,可以用循環(huán)來賦值,可以用循環(huán)來賦值用循環(huán)按下標(biāo)從用循環(huán)按下標(biāo)從小小到到大大輸出這輸出這1010個(gè)元素個(gè)元素將數(shù)字將數(shù)字0

13、0-9 9裝入一個(gè)整型數(shù)組裝入一個(gè)整型數(shù)組a a中,并輸出中,并輸出#includemain() int a10; int i; for(i=0;i10;i+) ai=i; printf(%d,ai); 【例例6.16.1】#include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 使使a0a9的值為的值為09例例: 對(duì)對(duì)1010個(gè)數(shù)組元素依次賦值為個(gè)數(shù)組元素依次賦值為0,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9,要求按,要求按逆序逆序輸出。輸出。#

14、include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 先輸出先輸出a9,最,最后輸出后輸出a00123456789a0a1a2a3a4a5a6a7a8a96.1.3一維數(shù)組的存儲(chǔ)和初始化一維數(shù)組的存儲(chǔ)和初始化 1.1.一維數(shù)組的存儲(chǔ):一維數(shù)組的存儲(chǔ):系統(tǒng)為數(shù)組按照其類型和元素個(gè)數(shù)開辟一系統(tǒng)為數(shù)組按照其類型和元素個(gè)數(shù)開辟一組連續(xù)的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元存放一個(gè)數(shù)組元素,組連續(xù)的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元存放一個(gè)數(shù)組元素,該連續(xù)該連續(xù)存儲(chǔ)單元的首地址由數(shù)組名表示。存儲(chǔ)單元的首地址由數(shù)組

15、名表示。2.2.有兩種方式對(duì)數(shù)組元素賦值:有兩種方式對(duì)數(shù)組元素賦值:(1 1)數(shù)組定義時(shí)給數(shù)組元素賦以初值,這兩種方式稱為)數(shù)組定義時(shí)給數(shù)組元素賦以初值,這兩種方式稱為數(shù)組的數(shù)組的初始化;初始化;(2 2)在程序執(zhí)行部分用賦值語句或輸入語句給數(shù)組元素賦值。)在程序執(zhí)行部分用賦值語句或輸入語句給數(shù)組元素賦值。一維數(shù)組的存儲(chǔ)和初始化一維數(shù)組的存儲(chǔ)和初始化 6.1.3對(duì)一維數(shù)組的初始化通??梢圆捎靡韵路绞竭M(jìn)行對(duì)一維數(shù)組的初始化通??梢圆捎靡韵路绞竭M(jìn)行: : (1) (1) 對(duì)數(shù)組的全部元素賦初值對(duì)數(shù)組的全部元素賦初值例如:例如:int num5=1,2,3,4,5;int num5=1,2,3,4,

16、5;將數(shù)組元素的初值依次放在一對(duì)花括號(hào)內(nèi),經(jīng)過上述定義將數(shù)組元素的初值依次放在一對(duì)花括號(hào)內(nèi),經(jīng)過上述定義及初始化之后,及初始化之后,num0=1, num1=2, num2=3, num3=4, num0=1, num1=2, num2=3, num3=4, num4=5num4=5。 (2) (2) 對(duì)數(shù)組的部分元素賦初值對(duì)數(shù)組的部分元素賦初值例如:例如:int num5=1,2,3;int num5=1,2,3;只給前只給前3 3個(gè)元素賦初值,其余個(gè)元素賦初值,其余2 2個(gè)元素的值為個(gè)元素的值為0 0。(3) (3) 對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組的長(zhǎng)度。對(duì)全部數(shù)組元素賦初值時(shí),可

17、以不指定數(shù)組的長(zhǎng)度。例如:例如:int num =1,2,3,4,5;int num =1,2,3,4,5;(4) (4) 當(dāng)數(shù)組指定的元素個(gè)數(shù)小于初值的個(gè)數(shù)時(shí),作語法錯(cuò)當(dāng)數(shù)組指定的元素個(gè)數(shù)小于初值的個(gè)數(shù)時(shí),作語法錯(cuò)誤處理。誤處理。例如:例如:int num4=1,2,3,4,5;int num4=1,2,3,4,5; 是不合法的,因?yàn)槭遣缓戏ǖ?,因?yàn)閚umnum數(shù)數(shù)組只能有組只能有4 4個(gè)元素。個(gè)元素。 一維數(shù)組的存儲(chǔ)和初始化一維數(shù)組的存儲(chǔ)和初始化 6.1.3 int a10=0,1,2,3,4,5,6,7,8,9; int a10=0,1,2,3,4;相當(dāng)于相當(dāng)于 int a10=0,1,

18、2,3,4,0,0,0,0,0; int a10=0,0,0,0,0,0,0,0,0,0;相當(dāng)于相當(dāng)于 int a10=0; int a5=1,2,3,4,5;可寫為可寫為 int a =1,2,3,4,5;1 1、若有以下語句,則下面、若有以下語句,則下面( )( )是正確的描述。是正確的描述。Char x = Char x = “1234512345”;char y = ;char y = 1 1, ,2 2, ,3 3, ,4 4, ,5 5;A A、 x x 數(shù)組和數(shù)組和 y y 數(shù)組的長(zhǎng)度相同數(shù)組的長(zhǎng)度相同 B B、 x x 數(shù)組長(zhǎng)度大于數(shù)組長(zhǎng)度大于 y y 數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度C C、

19、 x x 數(shù)組長(zhǎng)度小于數(shù)組長(zhǎng)度小于 y y 數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度D D、 x x 數(shù)組等價(jià)于數(shù)組等價(jià)于 y y 數(shù)組數(shù)組學(xué)生練習(xí):學(xué)生練習(xí):2 2、 以下一維整數(shù)數(shù)組以下一維整數(shù)數(shù)組 a a 的正確說明是的正確說明是( )( )。A A、 int a(10);int a(10);B B、 int n=10, an;int n=10, an;C C、 int a10;int a10;D D、 scanf(scanf(“%d%d”,&n),&n);int an;int an;3 3、以下能對(duì)一維數(shù)組、以下能對(duì)一維數(shù)組 a a 進(jìn)行正確初始化的語句是進(jìn)行正確初始化的語句是( )( )。A A、 int

20、a10=( 0, 0 , 0 );int a10=( 0, 0 , 0 );B B、 int a10= ;int a10= ;C C、 int a10=0;int a10=0;D D、 int a10=10int a10=10* *1;(1;(要使每個(gè)元素為要使每個(gè)元素為 1)1)學(xué)生練習(xí):學(xué)生練習(xí):一維數(shù)組的應(yīng)用一維數(shù)組的應(yīng)用 6.1.4【例例6.26.2】用數(shù)組求用數(shù)組求FibonacciFibonacci數(shù)列的前數(shù)列的前2020項(xiàng)。項(xiàng)。 FibonacciFibonacci數(shù)列可按下式計(jì)算:數(shù)列可按下式計(jì)算: f f i i =f =f i-1i-1+f +f i-2i-2 初值初值 f

21、 f 0 0=1 =1 ,f f 1 1=1=1。【例例6.2】main() int i; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(n); printf(%6d,fi); 用數(shù)組求用數(shù)組求Fibonacci數(shù)列的前數(shù)列的前20項(xiàng)。項(xiàng)。/*控制輸出每控制輸出每5個(gè)數(shù)據(jù)換一次個(gè)數(shù)據(jù)換一次行行*/【例例6.36.3】 隨機(jī)輸入隨機(jī)輸入1010個(gè)數(shù),選出其中的最小數(shù)個(gè)數(shù),選出其中的最小數(shù)main() int i,min,a10; printf(input 10 number:n); for(

22、i=0;i10;i+) scanf(%d,&ai); min=a0; for(i=1;i10;i+) if(aimin) min=ai; printf(minnum=%dn,min);練習(xí)練習(xí) 2 2 輸入輸入n(n10)n(n10),再再輸入輸入n n個(gè)數(shù)個(gè)數(shù)(1) (1) 求最小值求最小值學(xué)生思考學(xué)生思考練習(xí)練習(xí)【例例】從鍵盤輸入從鍵盤輸入1010個(gè)數(shù),求平均數(shù)并輸出所有大于個(gè)數(shù),求平均數(shù)并輸出所有大于平均數(shù)的數(shù)。平均數(shù)的數(shù)。 main()int i,n=0; float a10,ave=0; printf(請(qǐng)輸入請(qǐng)輸入10個(gè)數(shù)個(gè)數(shù):n); for(i=0;i10;i+) scanf(%f

23、,&ai); ave+=ai; ave=ave/10; printf(平均數(shù)為:平均數(shù)為:%fn, ave); for(i=0;iave) printf(%f ,ai); n+; if(n%4=0)printf(n); printf( n“);【例例6.46.4】main() static int a10=7,15,4,12,9,3,11,0,24,6; int i,j,temp,n; for(i=0;i=9;i+) for(j=i+1;j10;j+) if(aiaj) temp=ai; ai=aj; aj=temp; for(i=0;i10;i+) printf(%3d,ai); print

24、f(n); 將將1010個(gè)整數(shù)從大到小排序個(gè)整數(shù)從大到小排序(簡(jiǎn)介)簡(jiǎn)介)例例 4 4 輸入輸入n(n10)n(n10),再再輸入輸入n n個(gè)數(shù)個(gè)數(shù)(1) (1) 求最小值求最小值(2) (2) 求最小值和它所對(duì)應(yīng)的下標(biāo)求最小值和它所對(duì)應(yīng)的下標(biāo)(3) (3) 將最小值與第一個(gè)數(shù)交換,輸出交換后的將最小值與第一個(gè)數(shù)交換,輸出交換后的n n個(gè)數(shù)個(gè)數(shù)學(xué)生課后學(xué)生課后加強(qiáng)練習(xí)加強(qiáng)練習(xí)給予解題提示,學(xué)生課下思考,本次課不需要完成給予解題提示,學(xué)生課下思考,本次課不需要完成#include int main(void) int i, min, n; int a10; printf(“Enter n: ); scanf(%d, &n); printf(“Enter %d integers: , n); for(i = 0; i n; i+) scanf(%d, &ai); min = a0; for(i = 1; i n; i+) if(ai min) min = ai; printf(min is %d n, min); return 0; 例例 4(1) 4(1) 求最小值求最小值Enter

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論