東華大學(xué)通信與電子工程系_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、東華大學(xué) 通信與電子工程系,第七章 數(shù)組,一維數(shù)組,二維數(shù)組及多維數(shù)組,字符數(shù)組和字符串,數(shù)組概念,東華大學(xué) 通信與電子工程系,東華大學(xué) 通信與電子工程系,東華大學(xué) 通信與電子工程系,輸入5個(gè)按學(xué)號(hào)排列的學(xué)生某門課的成績(jī)表,要求按與輸入次序相反的順序輸出,#includevoid main(){ float s1, s2, s3, s4, s5;  printf(“enter five scores: &quo

2、t;);  scanf("%f , %f , %f, %f, %f", &s1, &s2, &s3, &s4, &s5); printf("\nThe score in reverse order are: ");  printf("%f\n", s5);  printf("%

3、f\n", s4);  printf("%f\n", s3);  printf("%f\n", s2);  printf("%f\n", s1); },這些數(shù)據(jù)具有共同的特點(diǎn):由若干分量構(gòu)成;數(shù)據(jù)的各個(gè)分量都是同一類型;這些分量是按一定順序排列的。,東華大學(xué) 通信與電子工程系,數(shù)組概念,構(gòu)造數(shù)據(jù)類型之一數(shù)組:按序排列的具有相

4、同類型的變量的集合。用數(shù)組名標(biāo)識(shí)這一組數(shù)。元素:屬同一數(shù)據(jù)類型,用數(shù)組名和下標(biāo)確定數(shù)組中的元素。 數(shù)組元素的作用相當(dāng)于簡(jiǎn)單變量,東華大學(xué) 通信與電子工程系,,一維數(shù)組的定義定義方式: 數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式];,合法標(biāo)識(shí)符,代表數(shù)組元素的個(gè)數(shù),即數(shù)組長(zhǎng)度下標(biāo)從0開始,7.1 一維數(shù)組,例:int a[5];表示有5個(gè)元素, 元素的下標(biāo)從0開始.數(shù)組a的元素分別為:a[0],a[1], a[

5、2], a[3], a [4],例 int i=15; int data[i]; (?不能用變量定義數(shù)組長(zhǎng)度)例 #define M 20 float y[4*M+1]; (合法,M是符號(hào)常量),東華大學(xué) 通信與電子工程系,一維數(shù)組的存儲(chǔ),C編譯程序用連續(xù)的內(nèi)存單元存放各個(gè)元素,例 int a[6];,編譯時(shí)分配連續(xù)內(nèi)存內(nèi)存總字節(jié)數(shù)=數(shù)組長(zhǎng)度*

6、 sizeof(元素?cái)?shù)據(jù)類型)如:總字節(jié)數(shù)=6*2=12,數(shù)組名代表的是數(shù)組在內(nèi)存中的首地址,是地址常量,東華大學(xué) 通信與電子工程系,數(shù)組必須先定義,后使用數(shù)組元素表示形式: 數(shù)組名[下標(biāo)]其中:下標(biāo)可以是常量或整型表達(dá)式,例 int a[10]; printf(“%d”,a); (?)必須 for(j=0;j<10;j++)

7、 printf(“%d\t”,a[j]); (?),例 int t,data[5]; t=data[2]; //引用data數(shù)組中序號(hào)為2的元素。,一維數(shù)組的引用,注意:只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組,東華大學(xué) 通信與電子工程系,用數(shù)組實(shí)現(xiàn),#includevoid main()  { int i; 

8、 float s[100];  printf("Enter the scores: ");  for (i=0; i=0; i--) //數(shù)組元素的輸出 printf("%f\n", s[i]);  },東華大學(xué) 通信與電子工程系,初始化方式,在定義數(shù)組時(shí),為數(shù)組元素賦初值(在編譯階段使之得到初值)

9、,int a[5]={1,2,3,4,5};等價(jià)于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;,說明:數(shù)組不初始化,其元素值為隨機(jī)數(shù),數(shù)組不進(jìn)行初始化時(shí),編譯器不為其自動(dòng)指定初始值。其初始值為系統(tǒng)分配給數(shù)組各元素的內(nèi)存單元原來的值,這個(gè)值是不可預(yù)知的。,一維數(shù)組的初始化,東華大學(xué) 通信與電子工程系,數(shù)組元素賦初值,? 對(duì)全部元素賦初值。如:,int a[10]={10, 11, 12, 13,

10、14, 15, 16, 17, 18, 19},表示數(shù)組元素的值為:,a[0]=10;,a[1]=11;,?,a[9]=19;,在對(duì)全部數(shù)組元素賦初值時(shí),可不指定數(shù)組長(zhǎng)度 如:int a[]={1,2,3,4,5,6}; //編譯系統(tǒng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度,東華大學(xué) 通信與電子工程系,? 對(duì)部分元素賦初值(前面的連續(xù)元素)。如:,在此, 只有前5個(gè)元素初值確定,后面5個(gè)元素的值為0。,int b[10]={0,1,2,

11、3,4};,表示數(shù)組元素的值為:,b[0]=0;,b[1]=1;,b[2]=2;,b[3]=3;,b[4]=4;,東華大學(xué) 通信與電子工程系,#include void main(){int i, b[10]={0,1,2,3,4}; for(i=0;i<10;i++)printf("%d\n",b[i]);},東華大學(xué) 通信與電子工程系,,注意:不能只對(duì)不連續(xù)部分元素

12、或后面的連續(xù)元素賦初值。,語句: int a[10]={, , , , ,1,2,3,4,5};是錯(cuò)誤的,int a[10]={1, ,3, ,5 , ,7, ,9, ,}; 是錯(cuò)誤的。,錯(cuò)誤:初始值的個(gè)數(shù)大于元素的個(gè)數(shù)如:int b[3]={3,6,2,7,3,1,9}; 是錯(cuò)誤的,東華大學(xué) 通信與電子工程系,給一個(gè)不多于9位的正整數(shù),要求:1)求出它是幾位數(shù);2)分別輸出每一位數(shù)字;3)按逆序輸出各位數(shù)字,#incl

13、udevoid main(){ long int number,num;int i,j,d[9];printf("請(qǐng)輸入一個(gè)位數(shù)<=9的正整數(shù):");scanf("%ld",&number); i=0;num=number; //保存輸入的整數(shù)的原值do{d[i]=num%10;i++;num=num/10;

14、}while(num); //d[0],d[1],...,分別存儲(chǔ)該整數(shù)的第1,2,...,位數(shù)字,東華大學(xué) 通信與電子工程系,if (i>9) //i的當(dāng)前值為該數(shù)的位數(shù)printf("輸入的整數(shù)已超出范圍!\n");else{printf("%ld的位數(shù)為:%d\n", number, i);

15、 printf("它的每位數(shù)字分別為:");for (j=i-1; j>=0; j--) //分別輸出該數(shù)的各位數(shù)字printf("%3d", d[j]); printf("\n");printf("將該數(shù)逆序輸出為:");for(j=0; j<

16、;i; j++)printf("%d", d[j]);printf("\n");}},東華大學(xué) 通信與電子工程系,,排序過程:(1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若為逆序a[0]>a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上(2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果

17、使次大的數(shù)被安置在第n-1個(gè)元素位置(3)重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束,例 用冒泡法對(duì)8個(gè)數(shù)排序,東華大學(xué) 通信與電子工程系,,例,38,49,76,97,13,97,97,27,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,例 用冒泡法對(duì)8個(gè)數(shù)排序(圖解),東華大學(xué) 通信與電子工程系,#define

18、 N 8#includevoid main(){int i,j,t,a[N];printf(“Input 8 numbers to be sorted:\n"); for(i=0; ia[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t; } printf("\n the sorted numbers:

19、\n"); for(i=0; i<N; i++) printf("%5d",a[i]); printf("\n");},東華大學(xué) 通信與電子工程系,二維數(shù)組的定義定義方式:  數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式][常量表達(dá)式];,,例 int a[3][4]; float b[2][5]; int c[2][3][4];

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論