第七章 數(shù)組課件_第1頁
第七章 數(shù)組課件_第2頁
第七章 數(shù)組課件_第3頁
第七章 數(shù)組課件_第4頁
第七章 數(shù)組課件_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東華大學通信與電子工程系第七章數(shù)組一維數(shù)組二維數(shù)組及多維數(shù)組字符數(shù)組和字符串數(shù)組概念東華大學通信與電子工程系第七章數(shù)組一維數(shù)組二維數(shù)組及多東華大學通信與電子工程系東華大學通信與電子工程系東華大學通信與電子工程系東華大學通信與電子工程系東華大學通信與電子工程系輸入5個按學號排列的學生某門課的成績表,要求按與輸入次序相反的順序輸出#include<stdio.h>voidmain(){floats1,s2,s3,s4,s5;printf(“enterfivescores:");scanf("%f,%f,%f,%f,%f",&s1,&s2,&s3,&s4,&s5);printf("\nThescoreinreverseorderare:");printf("%f\n",s5);printf("%f\n",s4);printf("%f\n",s3);printf("%f\n",s2);printf("%f\n",s1);}這些數(shù)據(jù)具有共同的特點:由若干分量構成;數(shù)據(jù)的各個分量都是同一類型;這些分量是按一定順序排列的。東華大學通信與電子工程系輸入5個按學號排列的學生某門課的成東華大學通信與電子工程系數(shù)組概念構造數(shù)據(jù)類型之一數(shù)組:按序排列的具有相同類型的變量的集合。用數(shù)組名標識這一組數(shù)。元素:屬同一數(shù)據(jù)類型,用數(shù)組名和下標確定數(shù)組中的元素。

數(shù)組元素的作用相當于簡單變量東華大學通信與電子工程系數(shù)組概念構造數(shù)據(jù)類型之一東華大學通信與電子工程系一維數(shù)組的定義定義方式:數(shù)據(jù)類型數(shù)組名[常量表達式];

合法標識符代表數(shù)組元素的個數(shù),即數(shù)組長度下標從0開始7.1

一維數(shù)組

例:inta[5];表示有5個元素,元素的下標從0開始.數(shù)組a的元素分別為:a[0],a[1],a[2],a[3],a[4]例inti=15;intdata[i];(

不能用變量定義數(shù)組長度)例#defineM20floaty[4*M+1];(合法,M是符號常量)東華大學通信與電子工程系一維數(shù)組的定義合法標識符代表數(shù)組元東華大學通信與電子工程系一維數(shù)組的存儲C編譯程序用連續(xù)的內(nèi)存單元存放各個元素例

inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a編譯時分配連續(xù)內(nèi)存內(nèi)存總字節(jié)數(shù)=數(shù)組長度*

sizeof(元素數(shù)據(jù)類型)如:總字節(jié)數(shù)=6*2=12數(shù)組名代表的是數(shù)組在內(nèi)存中的首地址,是地址常量東華大學通信與電子工程系一維數(shù)組的存儲C編譯程序用連續(xù)的內(nèi)東華大學通信與電子工程系數(shù)組必須先定義,后使用數(shù)組元素表示形式:數(shù)組名[下標]其中:下標可以是常量或整型表達式例inta[10];printf(“%d”,a);(

)必須for(j=0;j<10;j++)printf(“%d\t”,a[j]);(

)例intt,data[5];t=data[2];//引用data數(shù)組中序號為2的元素。一維數(shù)組的引用注意:只能逐個引用數(shù)組元素,不能一次引用整個數(shù)組東華大學通信與電子工程系例inta[10]東華大學通信與電子工程系用數(shù)組實現(xiàn)#include<stdio.h>voidmain(){inti;floats[100];printf("Enterthescores:");for(i=0;i<100;i++)//數(shù)組元素的輸入

scanf("%f",&s[i]);printf("\nThescoresinreverseorderare:");for(i=99;i>=0;i--)//數(shù)組元素的輸出

printf("%f\n",s[i]);}

東華大學通信與電子工程系用數(shù)組實現(xiàn)#include<st東華大學通信與電子工程系初始化方式在定義數(shù)組時,為數(shù)組元素賦初值(在編譯階段使之得到初值)inta[5]={1,2,3,4,5};等價于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;說明:數(shù)組不初始化,其元素值為隨機數(shù)

數(shù)組不進行初始化時,編譯器不為其自動指定初始值。其初始值為系統(tǒng)分配給數(shù)組各元素的內(nèi)存單元原來的值,這個值是不可預知的。一維數(shù)組的初始化東華大學通信與電子工程系在定義數(shù)組時,為數(shù)組元素賦初值i東華大學通信與電子工程系數(shù)組元素賦初值

對全部元素賦初值。如:inta[10]={10,11,12,13,14,15,16,17,18,19}表示數(shù)組元素的值為:a[0]=10;a[1]=11;

a[9]=19;在對全部數(shù)組元素賦初值時,可不指定數(shù)組長度

如:inta[]={1,2,3,4,5,6};//編譯系統(tǒng)根據(jù)初值個數(shù)確定數(shù)組長度東華大學通信與電子工程系數(shù)組元素賦初值對全部元素賦初值東華大學通信與電子工程系

對部分元素賦初值(前面的連續(xù)元素)。如:在此,只有前5個元素初值確定,后面5個元素的值為0。intb[10]={0,1,2,3,4};表示數(shù)組元素的值為:b[0]=0;b[1]=1;b[2]=2;b[3]=3;b[4]=4;東華大學通信與電子工程系對部分元素賦初值(前面的東華大學通信與電子工程系#include<stdio.h>voidmain(){ inti,b[10]={0,1,2,3,4};for(i=0;i<10;i++) printf("%d\n",b[i]);}東華大學通信與電子工程系#include<stdio.h東華大學通信與電子工程系注意:不能只對不連續(xù)部分元素或后面的連續(xù)元素賦初值。語句:

inta[10]={,,,,,1,2,3,4,5};是錯誤的inta[10]={1,,3,,5,,7,,9,,};是錯誤的。錯誤:初始值的個數(shù)大于元素的個數(shù)如:intb[3]={3,6,2,7,3,1,9};是錯誤的東華大學通信與電子工程系注意:不能只對不連續(xù)部分元素或后面東華大學通信與電子工程系給一個不多于9位的正整數(shù),要求:1)求出它是幾位數(shù);2)分別輸出每一位數(shù)字;3)按逆序輸出各位數(shù)字#include<stdio.h>voidmain(){longintnumber,num;

inti,j,d[9]; printf("請輸入一個位數(shù)<=9的正整數(shù):"); scanf("%ld",&number);i=0; num=number;//保存輸入的整數(shù)的原值

do { d[i]=num%10; i++; num=num/10; }while(num);//d[0],d[1],...,分別存儲該整數(shù)的第1,2,...,位數(shù)字東華大學通信與電子工程系給一個不多于9位的正整數(shù),要求:1東華大學通信與電子工程系 if(i>9)//i的當前值為該數(shù)的位數(shù)

printf("輸入的整數(shù)已超出范圍!\n"); else { printf("%ld的位數(shù)為:%d\n",number,i);

printf("它的每位數(shù)字分別為:"); for(j=i-1;j>=0;j--)//分別輸出該數(shù)的各位數(shù)字

printf("%3d",d[j]); printf("\n"); printf("將該數(shù)逆序輸出為:"); for(j=0;j<i;j++) printf("%d",d[j]); printf("\n"); }}東華大學通信與電子工程系 if(i>9)東華大學通信與電子工程系排序過程:(1)比較第一個數(shù)與第二個數(shù),若為逆序a[0]>a[1],則交換;然后比較第二個數(shù)與第三個數(shù);依次類推,直至第n-1個數(shù)和第n個數(shù)比較為止——第一趟冒泡排序,結果最大的數(shù)被安置在最后一個元素位置上(2)對前n-1個數(shù)進行第二趟冒泡排序,結果使次大的數(shù)被安置在第n-1個元素位置(3)重復上述過程,共經(jīng)過n-1趟冒泡排序后,排序結束例用冒泡法對8個數(shù)排序東華大學通信與電子工程系排序過程:例用冒泡法對8個數(shù)排東華大學通信與電子工程系例3849657613273097

第一趟38496513273076

第二趟384913273065

第三趟3813273049

第四趟13273038

第五趟132730

第六趟4938659776132730

初始關鍵字n=8384976971397972730971376767627301365276530651313494930492738273830381327

第七趟例用冒泡法對8個數(shù)排序(圖解)東華大學通信與電子工程系例384965東華大學通信與電子工程系#defineN8#include<stdio.h>voidmain(){ inti,j,t,a[N]; printf(“Input8numberstobesorted:\n");for(i=0;

i<N;i++) scanf("%d",&a[i]);for(j=0;j<N-1;j++)

//外循環(huán)j控制比較的趟數(shù)N-1 for(i=0;i<N-1-j;i++)

//內(nèi)循環(huán)i控制一趟比較的次數(shù)N-1-j

if(a[i]>a[i+1])

{ t=a[i]; a[i]=a[i+1]; a[i+1]=t;

}printf("\nthesortednumbers:\n");for(i=0;i<N;i++) printf("%5d",a[i]);printf("\n");}東華大學通信與電子工程系#defineN8東華大學通信與電子工程系二維數(shù)組的定義定義方式:

數(shù)據(jù)類型數(shù)組名[常量表達式][常量表達式];例inta[3][4];floatb[2][5];intc[2][3][4];

inta[3,4];(

)行數(shù)列數(shù)元素個數(shù)=行數(shù)*列數(shù)7.2二維數(shù)組及多維數(shù)組東華大學通信與電子工程系例inta[3][4];東華大學通信與電子工程系例inta[3][4];20161720181920202120222320089201011201213201415200012002320045200067a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[

溫馨提示

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

評論

0/150

提交評論