C語言程序設(shè)計第九講.ppt_第1頁
C語言程序設(shè)計第九講.ppt_第2頁
C語言程序設(shè)計第九講.ppt_第3頁
C語言程序設(shè)計第九講.ppt_第4頁
C語言程序設(shè)計第九講.ppt_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計,第九講 主講:厲福生,上講回顧,函數(shù)的遞歸調(diào)用 用遞歸寫n的階乘 解方程算法 變量的類型 變量的存儲類型,數(shù)組,在C語言中,把類型相同的若干變量組織起來就構(gòu)成了數(shù)組。 簡單而言:數(shù)組就是很多個變量按一定的方式組合起來而成的。,一維數(shù)組的定義,類型說明符 數(shù)組名常量表達式; 注意一:這里是C語言唯一一個使用中括號的地方。 注意二:中括號中寫的必須是常量表達式,不可有含有變量。 中括號中的常量是數(shù)組中元素的個數(shù)。必須是整數(shù)。,注意,數(shù)組的類型實際上是指數(shù)組元素的類型。對于同一個數(shù)組,其所有元素的數(shù)據(jù)類型都是相同的。 數(shù)組名的命名規(guī)則應(yīng)符合標識符的命名規(guī)定。 數(shù)組名不能與其他變量名相

2、同。 方括號中常量表達式表示數(shù)組元素的個數(shù)。 不能在方括號中用變量來表示元素的個數(shù),但可以是符號常量或常量表達式。 允許在同一個類型說明中,說明多個數(shù)組和多個變量。 數(shù)組名表示首元素的地址,并不能代表整個數(shù)組。,一維數(shù)組的引用,數(shù)組名下標 注意:這里的下標是0,1,2,3, N個元素的數(shù)組下標是從0到N-1,每個數(shù)組元素都是一個獨立的變量。 數(shù)組名是0號元素的地址。,一維數(shù)組的初始化,定義同時賦初值的形式為: 類型說明符 數(shù)組名常量表達式=值,值,值,值; 注意:除了定義的同時賦初值之外,不可以這樣賦值,只能對數(shù)組元素一一賦值。,注意,可以只給部分元素賦初值。 在定義完之后只能給元素逐個賦值,

3、不能給數(shù)組整體賦值。 如果定義同時賦初值,而且是全部賦值的情況下,可以不給出數(shù)組元素的個數(shù)。,例如,合法的用法有: int a5; int a5=1,2,3,4,5; int a10=1,2,3; int a=1,2,3,4,5,6; 錯誤的用法有: int c=5,ac; int a5;a5=8; int a5;a5=1,2,3,4,5; int a;,以下程序的結(jié)果為?,#include main() int a5=1,2,3,4,5,i; scanf(%d,a); for(i=0;i5;i+) printf(%3d,ai); ,插入算法,在一個有序未滿的數(shù)組中插入一個元素,保證有序。 如

4、:元數(shù)組元素為:1,3,5,7,9 現(xiàn)在插入一個數(shù)字6,保證其仍然有序。 插入后的數(shù)組元素為1,3,5,6,7,9,插入算法步驟,定位:確定要插入的元素的位置。方法為:用待插入的元素減去后一個元素乘以待插入的元素送去前一個元素,如果兩個差相乘小于0,則說明待插入元素在這兩個數(shù)中間,便插入在此。 插入:將后邊的元素依次向后移動一位,裝待插入的元素放在此處。,例子,#include main() int a10=1,3,5,7,9,i,k; for(i=0;ai!=0;i+) if(ai6) k=i+1; for(;ik;i-) ai=ai-1; ai=6; for(i=0;ai!=0;i+) p

5、rintf(%3d,ai); ,刪除算法一,在原數(shù)列中刪除唯一的一個指定元素。如:1,2,3,4,5,6,7,8 中把4刪除。 #include main() int a10=1,2,3,4,5,6; int i; for(i=0;i9;i+) if(ai=4) break; for(;i9;i+) ai=ai+1; for(i=0;ai;i+) printf(%3d,ai); ,刪除算法二,將下列數(shù)列中所有的3刪除:1,3,5,7,5,4,3,2,3,5,7,3,3,9 #include main() int a20=1,3,5,7,5,4,3,2,3,6,7,3,3,9; int i,j=

6、0; for(i=0;aj;i+) if(ai!=3) aj+=ai; for(i=0;ai;i+) printf(%3d,ai); ,排序算法,排序算法有很多種方法,主要的方法有三種: 直接排序法 選擇排序法 冒泡排序法,直接排序法,#include main() int a5=2,5,3,4,1; int i,j,t; for(i=0;iaj) t=ai; ai=aj; aj=t; for(i=0;i5;i+) printf(%3d,ai); ,直接排序法執(zhí)行過程,#include main() int a5=2,5,3,4,1; int i,j,t,k; for(i=0;iaj) t=a

7、i; ai=aj; aj=t; for(k=0;k5;k+) printf(%3d,ak); putchar(10); for(i=0;i5;i+) printf(%3d,ai); ,選擇排序法,#include main() int a5=3,4,2,5,1; int i,j,k,t; for(i=0;iaj) k=j; t=ak; ak=ai; ai=t; for(i=0;i5;i+) printf(%3d,ai); ,選擇排序執(zhí)行過程,#include main() int a5=3,4,2,5,1; int i,j,k,t,h; for(i=0;iaj) k=j; t=ak; ak=a

8、i; ai=t; for(h=0;h5;h+) printf(%3d,ah); putchar(10); for(i=0;i5;i+) printf(%3d,ai); ,冒泡排序法,#include main() int a5=5,4,2,3,1; int i,j,t,k; for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i5;i+) printf(%3d,ai); ,冒泡排序法執(zhí)行過程,#include main() int a5=5,4,2,3,1; int i,j,t,k; for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; for(k=0;k5;k+) printf(%3d,ak); putchar(10); for(i=0;i5;i+) printf(%3d,ai); ,數(shù)組名做函數(shù)參數(shù),#include void fun(int a10,int b) int i;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論