資源描述:
《宋琳《數(shù)組引用》課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、§6.1數(shù)值型數(shù)組·一維數(shù)組的引用宋琳如何定義一維數(shù)組?#defineS20main(){inta[10];intdata[S];}例inti=15;intdata[i];/*?不能用變量定義數(shù)組長(zhǎng)度*/一維數(shù)組的引用數(shù)組必須先定義,后使用只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組數(shù)組元素表示形式:數(shù)組名[下標(biāo)]其中:下標(biāo)可以是常量或任意返回整型量的表達(dá)式例inta[10];printf(“%d”,a);(?)必須for(j=0;j<10;j++)printf(“%dt”,a[j]);(?)例intdata[5];data[5]=10;/*
2、C語(yǔ)言對(duì)數(shù)組不作越界檢查,使用時(shí)要注意*/例1:鍵盤輸入十個(gè)整數(shù),按從小到大順序排序并輸出。例初始:[49386597761327]iji=0j=1~649一趟:13[496597763827]38五趟:1327384965[9776]六趟:132738496576[97]ijjjjjjjjj38j3813二趟:1327[6597764938]三趟:132738[97766549]四趟:13273849[977665]493827i=1j=2~6i=2j=3~6i=3j=4~6i=4j=5~6i=5j=6~6輸入10個(gè)數(shù)給a[0]到a[9]f
3、ori=0to8forj=i+1to9a[i]>a[j]輸出a[0]到a[9]a[i]?a[j]真假#includemain(){inta[10],i,j,t;for(i=0;i<=9;i++)scanf("%d",&a[i]);printf("");for(i=0;i<=8;i++)for(j=i+1;j<=9;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i<=9;i++)printf("%d",a[i]);}排序過(guò)程:(1)首先通過(guò)n-1次比較,從n個(gè)數(shù)中依次
4、找出小數(shù),將它與第一個(gè)數(shù)依次交換—第一趟選擇排序,結(jié)果最小的數(shù)被安置在第一個(gè)元素的位置上。(2)再通過(guò)n-2次比較,從剩余的n-1個(gè)數(shù)中依次找出小數(shù),將它與第二個(gè)數(shù)依次交換—第二趟選擇排序,結(jié)果第二小的數(shù)被安置在第二個(gè)元素的位置上。(3)重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟排序后,排序結(jié)束。簡(jiǎn)單選擇法排序過(guò)程小結(jié):方法二:用冒泡法對(duì)10個(gè)數(shù)從小到大排序排序過(guò)程:(1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若a[0]>a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上(
5、2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使第二大的數(shù)被安置在第n-1個(gè)元素位置(3)重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟冒泡排序后,排序結(jié)束例3849657613273097第一趟3849651327307697第二趟3849132730657697第三趟3813273049657697第四趟1327303849657697第五趟1327303849657697第六趟4938659776132730初始關(guān)鍵字n=838497697139727973097137676762730136527653065131349493049273827383038
6、1327303849657697第七趟輸入n個(gè)數(shù)給a[1]到a[n]fori=1ton-1forj=1ton-ia[j]>a[j+1]真假a[j]?a[j+1]輸出a[1]到a[n]#includemain(){inta[11],i,j,t;for(i=1;i<=10;i++)scanf("%d",&a[i]);for(i=1;i<=9;i++)for(j=1;j<=10-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=1;i<=10;i++)printf("
7、%d",a[i]);}#defineN6main(){inta[N],b[‘B’-60],c[]={1,2,3,4,5,6},i;for(i=0;i8、習(xí)一維數(shù)組的定義和引用(2)上機(jī)練習(xí)將十個(gè)整數(shù)從大到小排序(3)預(yù)習(xí)二維數(shù)組