1、關(guān)于一維數(shù)組及其應(yīng)用第1頁,共10頁,2022年,5月20日,15點9分,星期四一為什么要使用數(shù)組 兩個數(shù)中得到最大值?三個數(shù)中得到最大值?四個數(shù)中得到最大值?max=a;If (max=b) max=b ;If (max=c) max=c max=a;If (max=b) max=b ;If (max=c) max=c ;If (max=b) max=a; else max=b; 第2頁,共10頁,2022年,5月20日,15點9分,星期四第五章 數(shù)組構(gòu)造數(shù)據(jù)類型之一數(shù)組:有序數(shù)據(jù)的集合,用數(shù)組名標識元素:屬同一數(shù)據(jù)類型,用數(shù)組名和下標確定5.1 一維數(shù)組一維數(shù)組的定義定義方式: 數(shù)據(jù)類型
2、數(shù)組名常量表達式; 合法標識符表示元素個數(shù)下標從0開始 :數(shù)組運算符單目運算符優(yōu)先級(1)左結(jié)合不能用( )例 int a6;a00145a1a2a3a4a523a編譯時分配連續(xù)內(nèi)存內(nèi)存字節(jié)數(shù)=數(shù)組維數(shù)* sizeof(元素數(shù)據(jù)類型)數(shù)組名表示內(nèi)存首地址,是地址常量第3頁,共10頁,2022年,5月20日,15點9分,星期四一維數(shù)組的引用數(shù)組必須先定義,后使用使用printf, scanf時,只能逐個引用數(shù)組元素,不能一次引用整個數(shù)組數(shù)組元素表示形式: 數(shù)組名下標其中:下標可以是常量或整型表達式例 int i=15; int datai; (不能用變量定義數(shù)組維數(shù))例 int a10; pri
3、ntf(“%d”,a); ()必須 for(j=0;j10;j+) printf(“%dt”,aj); for (j=0;j10;j+) scanf(“%d”, &aj); ()例 int data5; data5=10; /C語言對數(shù)組不作越界檢查,使用時要 注意第4頁,共10頁,2022年,5月20日,15點9分,星期四一維數(shù)組的初始化初始化方式 在定義數(shù)組時,為數(shù)組元素賦初值(在編譯階段使之得到初值) int a5=1,2,3,4,5;等價于:a0=1; a1=2; a2=3; a3=4; a4=5;說明:數(shù)組不初始化,其元素值為隨機數(shù)當全部數(shù)組元素賦初值時,可不指定數(shù)組長度如 int
4、a5=6,2,3; 等價于: a0=6; a1=2;a2=3; a3=0; a4=0;如 int a3=6,2,3,5,1; ()static int a5;等價于:a0=0; a1=0; a2=0; a3=0; a4=0;只給部分數(shù)組元素賦初值 int a=1,2,3,4,5,6;編譯系統(tǒng)根據(jù)初值個數(shù)確定數(shù)組維數(shù)第5頁,共10頁,2022年,5月20日,15點9分,星期四程序舉例例 讀10個整數(shù)存入數(shù)組,找出其中最大值和最小值步驟:1. 輸入:for循環(huán)輸入10個整數(shù)2. 處理:(a) 先令max=min=x0(b) 依次用xi和max,min比較(循環(huán)) 若maxxi,令min=xi3.
5、輸出:max和min #include #define SIZE 10main() int xSIZE,i,max,min; printf(Enter 10 integers:n); for(i=0;iSIZE;i+) printf(%d:,i+1);scanf(%d,&xi); max=min=x0; for(i=1;iSIZE;i+) if(maxxi) min=xi; printf(Maximum value is %dn,max); printf(Minimum value is %dn,min);第6頁,共10頁,2022年,5月20日,15點9分,星期四例 用數(shù)組求Fibonacc
6、i數(shù)列前20個數(shù)f0f1f2f3f4f5f19.11f1901452319235#include main() int i; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;ia1,則交換;然 后比較第二個數(shù)與第三個數(shù);依次類推,直至第n-1個數(shù)和第 n個數(shù)比較為止第一趟冒泡排序,結(jié)果最大的數(shù)被安置在 最后一個元素位置上(2)對前n-1個數(shù)進行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在 第n-1個元素位置(3)重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束第8頁,共10頁,2022年,5月20日,15點9分,星期四例38 49 65 76 13 27 30 97第一趟38 49 65 13 27 30 76 97第二趟49 38 65 97 76 13 27 30n=838496597769713972797307649973865137676309727
評論
0/150
提交評論