版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言程序設(shè)計(jì)第七章數(shù)組,7-2,主要內(nèi)容,7.1 一維數(shù)組7.2 字符數(shù)組與字符串7.3 多維數(shù)組,7-3,概述,我們已經(jīng)熟悉了整型、浮點(diǎn)型、字符型數(shù)據(jù)。本章要介紹構(gòu)造類數(shù)據(jù) -- 數(shù)組。構(gòu)造類數(shù)據(jù)是由上述基本類型數(shù)據(jù)按一定規(guī)則排序構(gòu)成的數(shù)據(jù)集合體。是C語(yǔ)言的重要內(nèi)容。構(gòu)造類型數(shù)據(jù)有:數(shù)組類型;結(jié)構(gòu)體類型;共用體類型。,7-4,7.1 一維數(shù)組,一維數(shù)組的定義格式數(shù)據(jù)類型 數(shù)組名[元素個(gè)數(shù)];說(shuō)明數(shù)據(jù)
2、類型:指數(shù)組元素的類型。有int型、 float型、 char型。數(shù)組名:代表一個(gè)數(shù)據(jù)集合的數(shù)組的名字。下標(biāo): 用方括號(hào)即“[ ]”屆定。不能用圓括號(hào)和花括號(hào),下標(biāo)值從0開(kāi)始計(jì)數(shù)。元素個(gè)數(shù):數(shù)組包含數(shù)據(jù)的個(gè)數(shù)。元素個(gè)數(shù)必須是大于或等于1的整數(shù)。數(shù)組必須先定義,后使用。,7-5,7.1 一維數(shù)組,例1:例: int data[4]; 該數(shù)組有4個(gè)元素,它們是: data[0] data[1]data[2]data[
3、3]我們?nèi)缓罂梢韵笃胀ㄗ兞恳粯邮褂脭?shù)組:data[1] =10;data[2] =12;data[3] = data[1] + data[2] * 2;printf (“%d”; data[3]);,7-6,7.1 一維數(shù)組,例2:請(qǐng)看下列程序段有什么錯(cuò)誤:int x;int weight[x]; // 元素個(gè)數(shù)不能用變量來(lái)定義。應(yīng)該是常量char name(50); // 下標(biāo)符不能用圓括號(hào)
4、int num[-5]; // 元素個(gè)數(shù)不能定義成負(fù)數(shù)。float deptname[x+15]; //定義數(shù)組不能用變量表達(dá)式。只能用常量表達(dá)式int array[10.5]; //元素個(gè)數(shù)不能用小數(shù)定義,7-7,7.1 一維數(shù)組,例3:#define BUFSIZE 512 // 宏定義,用指定的標(biāo)識(shí)符來(lái)代替后面的數(shù)字#define STACKSIZE 24 // 宏定義in
5、t inbuffer[BUFSIZE]; //等效為 inbuffer[512]; 在編譯時(shí)進(jìn)行替換char outbuffer[STACSIZE]; //等效為 outbuffer[24]; 在編譯時(shí)進(jìn)行替換float s[15+5],x[10];,7-8,7.1 一維數(shù)組,數(shù)組元素的存儲(chǔ)和使用每個(gè)數(shù)組元素都占用內(nèi)存中的一個(gè)存儲(chǔ)單元,每個(gè)元素都是一個(gè)變量,可以像以前講過(guò)的普通變量一樣使用,只不過(guò)數(shù)組元素是通過(guò)
6、數(shù)組名和方括號(hào)“[ ]”里的下標(biāo)來(lái)確定的。系統(tǒng)為數(shù)組元素在內(nèi)存中分配連續(xù)的存儲(chǔ)單元。例: int a[5];數(shù)組名a。數(shù)組元素的數(shù)據(jù)類型為int整型數(shù)據(jù)。數(shù)組元素的下標(biāo)值從0開(kāi)始。數(shù)組元素的個(gè)數(shù)為15個(gè),它們是: a[0]、a[1]、a[2] .. ..a[13]、a[14]數(shù)組名a是數(shù)組存儲(chǔ)區(qū)的首地址,即存放數(shù)組第一個(gè)元素的地址。a?&a[0];因此數(shù)組名是一個(gè)地址常 量。不能對(duì)數(shù)組名進(jìn)行賦值和運(yùn)算
7、。,7-9,7.1 一維數(shù)組,數(shù)組的使用就是對(duì)數(shù)組元素的讀寫(xiě)操作。使用數(shù)組與使用普通變量類似,也是先定義后使用。與變量不同的是不能對(duì)數(shù)組整體進(jìn)行(讀?。┎僮鳎荒軐?duì)數(shù)組的元素進(jìn)行操作。一維數(shù)組的引用格式數(shù)組名 [ 下標(biāo) ]說(shuō)明下標(biāo)可以是常量或常量表達(dá)式。下標(biāo)可以是變量,也可以是表達(dá)式。下標(biāo)如果是表達(dá)式, 首先計(jì)算表達(dá)式, 計(jì)算的最終結(jié)果為下標(biāo)值。 下標(biāo)值若不是整型,C系統(tǒng)會(huì)自動(dòng)取整。下標(biāo)值從
8、0開(kāi)始。而不是從1開(kāi)始。使用數(shù)組時(shí),下標(biāo)不能超過(guò)或等于定義時(shí)的下標(biāo)值。,7-10,7.1 一維數(shù)組,例4:int a[10],i,p;i=2; a[2*i-1]=1; //√下標(biāo)為變量表達(dá)式。a[5]=1; //√對(duì)數(shù)組a的第六個(gè)元素a[5]賦值1p=a[5]; //√將數(shù)組a的第六個(gè)元素a[5]的值賦給變量pa[10-10]=1; // √將1賦
9、給數(shù)組a的第一個(gè)元素a[0]。a=11; // ×不能對(duì)數(shù)組整體進(jìn)行讀寫(xiě),即不能對(duì)數(shù)組名讀寫(xiě)printf(“a=%d”,a); // ×同上a[10]=a[0]-a[1]; // ×下標(biāo)超限,7-11,7.1 一維數(shù)組,一維數(shù)組的初始化數(shù)組的初始化就是在定義數(shù)組的同時(shí)給各數(shù)組元素賦初值。初始化是在程序運(yùn)行前編譯時(shí)完成的。一維數(shù)組初始化的格式數(shù)據(jù)類型標(biāo)識(shí)符 數(shù)
10、組名[元素個(gè)數(shù)]={ 數(shù)值1,數(shù)值2,.. ..數(shù)值n };花括號(hào){ }中的數(shù)值用于數(shù)組元素賦初值。賦值是按對(duì)應(yīng)次序進(jìn)行?;ɡㄌ?hào){ }中的數(shù)值之間用逗號(hào)“,”分開(kāi)。如: int x[5]={ 1,2,3,4,5 }; 則數(shù)組中各元素的初始值為: x[0]=1, x[1]=2, x[2]=3, x[3]=4, x[4 ]=5。數(shù)值的個(gè)數(shù)要等于數(shù)組所定義的元素個(gè)數(shù)花括號(hào){ }中數(shù)值的個(gè)數(shù)如果少于數(shù)組元素的個(gè)數(shù),則多余的數(shù)組
11、元素初始化的數(shù)值為0。如: int x[5]={ 3,4,7 }; 則數(shù)組中各元素的初始值為: x[0]=3, x[1]=4, x[2]=7, x[3]=0, x[4]=0?;ɡㄌ?hào){ }中數(shù)值的個(gè)數(shù)多于數(shù)組元素的個(gè)數(shù)是語(yǔ)法錯(cuò)誤。,7-12,7.1 一維數(shù)組,在數(shù)組初始化中,可缺省方括號(hào)中的下標(biāo)值(元素個(gè)數(shù)) , 數(shù)組元素個(gè)數(shù)由花括號(hào)中所賦初始值的數(shù)值個(gè)數(shù)來(lái)決定。如: in
12、t y[ ]={ 6,4,1,7,8,10 }; 等價(jià)于 int y[6]={ 6,4,1,7,8,10 };對(duì)于存儲(chǔ)類型為static靜態(tài)或extern外部類型的數(shù)組,如果不在定義時(shí)進(jìn)行賦值, 則多數(shù)編譯系統(tǒng)都將其值初始化為0。如: static int x[3]; 則數(shù)組各元素的初值為: x[0]=0, x[1]=0, x[2]=0。,7-13,7.1 一維數(shù)組,一維數(shù)組的應(yīng)用舉例,
13、#include "stdio.h"void main( ){ int a[ ]={1,2,3,4}; int i,j,s; for( i=3,j=1,s=0; i>=0; i-- ) { s=s+a[ i ]*j; j=j*10; } printf("s=%d\n",s);},運(yùn)行程序: s=1
14、234,分析: 循環(huán)變量 s=s+a[i]*j j=j*10 i=3: s=4, j=10; i=2: s=34, j=100; i=1: s=234, j=1000; i=0: s=1234, j=10000。,7-14,7.1 一維數(shù)組,編程:計(jì)算一維數(shù)組中所有
15、元素的平均值。,#include “stdio.h”void main(){ int i; static int x[]={10,8,7,6,5,4,3,2}; float average=0; for(i=0;i<8;i++) average+=x[i]; average/=8; printf(“The average is %f”, average);},運(yùn)行結(jié)果為: 5.6
16、25000,7-15,7.1 一維數(shù)組,用冒泡法對(duì) 6 個(gè)數(shù)排序(由小到大)。冒泡法思路:比較相鄰兩數(shù),將小的調(diào)到前頭。,985420,985420,89,,,59,49,29,09,,,,,,,,,9,9,854209,58,,,48,28,08,,,,,,,8,8,420589,5,5,204589,4,4,024589,2,2,結(jié)果,㈠,㈡,㈢,㈣,開(kāi)始
17、,㈤,024589,共循環(huán)多少次? 每次循環(huán)進(jìn)行了多少次比較?什么時(shí)候結(jié)束? 如果要求先將最小的數(shù)排在最前面,該如何操作?,7-16,7.1 一維數(shù)組,#include #define N 6void main ( ){int a[N+1]; int i , j, t ;printf ("input %d numbers:\n", N);for ( i = 1; i a[i+
18、1] ) { t = a[i]; a[i] = a[i+1]; a[i+1] = t; }printf ("the sorted numbers:\n");for ( i = 1; i <= N; i++) printf ("%d ", a[i] );printf ("\n");},7-17,7.1 一維數(shù)組,例:求20個(gè)數(shù)的最大值。設(shè)一
19、個(gè) a[20],max,i設(shè)max=a[0]用循環(huán)求最大值,void main( ){ int a[20],i,max; for(i=0;i<20;i++) scanf(“%d”,&a[i]); max=a[0]; for(i=1;i<20;i++) if(max<a[i]) max=a[i]; printf(“max=%d\n”,max);
20、},7-18,7.2 字符數(shù)組與字符串,字符數(shù)組前面介紹的都是數(shù)值型數(shù)組,即數(shù)組元素都是數(shù)值。本節(jié)中的數(shù)組,其每個(gè)元素都是一個(gè)字符,即char類型。除此之外,它與前面講的數(shù)組沒(méi)有區(qū)別。前面介紹的數(shù)組的定義、數(shù)組的存儲(chǔ)形式和數(shù)組的引用等都適用于字符型數(shù)組。字符型數(shù)組的定義char 數(shù)組名[字符個(gè)數(shù)];為每個(gè)數(shù)組元素賦值前面講過(guò),在C語(yǔ)言中,字符必須要用單引號(hào)括起來(lái)。輸出每個(gè)數(shù)組元素輸入時(shí),采用%c
21、的格式;輸出時(shí)也采用%c的格式。,7-19,7.2 字符數(shù)組與字符串,例:編寫(xiě)程序?qū)ood luck存放在一維數(shù)組中,并輸出。,#include void main(){ char a[9]; int i=0; a[0]='G'; a[1]='o'; a[2]='o'; a[3]='d'; a[4
22、]=' '; a[5]='l'; a[6]='u'; a[7]='c'; a[8]='k'; for(i=0;i<9;i++) printf("%c",a[i]); },運(yùn)行結(jié)果為: Good luck,7-20,7.2 字符數(shù)組與字符串,字符型數(shù)組用于存放字符或字符串, 每一
23、個(gè)數(shù)組元素存放一個(gè)字符(的ASCII碼), 它在內(nèi)存占用一個(gè)字節(jié)的空間。用于存放單個(gè)字符的字符數(shù)組和字符變量的作用相同, 但表達(dá)形式不同。 例: char c; char c[1];字符數(shù)組初始化char a[9]={'G','o','o','d',' ','l','u','
24、;c','k'}; //初始化字符數(shù)組a:9個(gè)字符依次賦給a[0]~a[8]char b[9]={‘G’,‘o’,‘o’,‘d’}; //數(shù)據(jù)個(gè)數(shù)少于數(shù)組元素個(gè)數(shù),多余的數(shù)組元素初始化為空字符’\0’;反之,系統(tǒng)報(bào)錯(cuò)char d[9]; //沒(méi)有初始化,對(duì)于靜態(tài)型和外部型數(shù)組元素初始化為’\0’,而自動(dòng)型數(shù)組元素的值不確定,7-21,7.2 字符數(shù)組與字符串,字符串用雙引號(hào)括起來(lái)的一串字符稱為字符串。C語(yǔ)
25、言用字符數(shù)組來(lái)處理字符串。存放字符串時(shí),在有效字符后面要有一個(gè)字符’\0’,作為字符串的結(jié)束標(biāo)志。定義字符串?dāng)?shù)組時(shí),元素個(gè)數(shù)要比字符串的字符個(gè)數(shù)多1個(gè),以保存字符串結(jié)束標(biāo)志符‘\0’。,#include main(){ char a[10]; /*定義字符數(shù)組*/ int i=0; a[0]='w'; a[1]='e'; a[2]='l'; a[3]='l
26、9;; a[4]=' '; /*為每個(gè)元素賦值*/ a[5]='d'; a[6]='o'; a[7]='n'; a[8]='e'; a[9]='\0'; for(i=0;i<=9;i++) /*輸出每個(gè)數(shù)組元素的值*/ printf("%c",a[i]);},運(yùn)行結(jié)果為: We
27、ll done,7-22,7.2 字符數(shù)組與字符串,字符串?dāng)?shù)組的初始化即在定義字符串?dāng)?shù)組的同時(shí)進(jìn)行賦值。有兩種方法。用字符常量初始化數(shù)組,例如: char str[6]={ ‘ C’, ‘ h’, ‘i’, ‘ n’, ‘ a’, ‘ \0’ }; 用花括號(hào)括將賦值的字符常量括起來(lái)。數(shù)組str[6]被初始化為: “ China ”。用字符串常量初始化數(shù)組,例如:char string[6]
28、=“China”; 用字符串常量初始化數(shù)組時(shí), 可不用花括號(hào)。若字符個(gè)數(shù)少于數(shù)組長(zhǎng)度,程序都自動(dòng)在末尾字符后加‘\0’。,7-23,7.2 字符數(shù)組與字符串,用字符串常量初始化時(shí),字符數(shù)組的下標(biāo)也可以省略,其數(shù)組存放字符的個(gè)數(shù)由賦值的字符串的長(zhǎng)度決定。例如: char str[ ] = {“1a2b3c”};等價(jià)于 char str[7] = {“1a2b3c”}; 初始化時(shí),若字符個(gè)數(shù)與數(shù)組長(zhǎng)度相同,則
29、字符末尾不加‘\0’,此時(shí)字符數(shù)組不能作為字符串處理,只能作字符逐個(gè)處理。初始化時(shí)是否加‘\0’要看是否作為字符串處理。,7-24,7.2 字符數(shù)組與字符串,字符串處理函數(shù)C 語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)中, 提供了大量字符串的操作函數(shù), 包括: 字符型數(shù)組的輸入/輸出函數(shù)和字符串處理函數(shù)字符型數(shù)組的輸入/輸出用getchar( ) 對(duì)字符數(shù)組進(jìn)行鍵盤輸入。調(diào)用格式:getchar ( );例:char c[15];
30、for(i=0;i<14;i++) c[i]=getchar( );getchar( )一次只能從鍵盤接收一個(gè)字符。用gets( ) 對(duì)字符串?dāng)?shù)組進(jìn)行鍵盤輸入。格式:gets (字符串?dāng)?shù)組名); 例:char string[15]; gets(string);,7-25,7.2 字符數(shù)組與字符串,用scanf( ) 對(duì)字符數(shù)組進(jìn)行賦值。從鍵盤讀取一個(gè)字符:scanf(“%c”, 數(shù)組元素地址); 從鍵盤
31、讀取一串字符:scanf(“%s”, 數(shù)組名);例:char c[15]; for(i=0;i<15;i++) scanf(“%c”,&c[i]); // 逐個(gè)賦值例:char c[15]; scanf(“%s”,c); 或 scanf(“%s”,&c[0]) // 成批賦值當(dāng)在鍵盤輸入完要輸入的字符串時(shí), 字符數(shù)組自動(dòng)包含一個(gè)‘ \0 ’結(jié)束標(biāo)志。scanf (
32、 )的格式要求操作數(shù)是地址。但 scanf (“%s”, & c ) ; 的寫(xiě)法是不正確的。此時(shí)是字符數(shù)組, 對(duì)其操作不能加地址運(yùn)算符號(hào)。因?yàn)? 字符數(shù)組名是字符串第一個(gè)字符的地址, 是地址常量。,字符串輸入結(jié)束標(biāo)志:空格、TAB、回車,7-26,7.2 字符數(shù)組與字符串,用putchar ( ) 輸出字符數(shù)組中的內(nèi)容。putchar (字符名);例:char c[20]=“Microsoft PowerPoint
33、 ”; for(i=0;i<20;i++) putchar(c[i]); putchar( )一次只能向屏幕輸出一個(gè)字符。用puts( )輸出字符數(shù)組中的內(nèi)容。puts (字符串?dāng)?shù)組名);例:char string[11]=“Microsoft”; puts(string);puts函數(shù)將字符數(shù)組sring中的所有字符輸出到屏幕上,遇‘\0’結(jié)束。,7-27,7.2 字符數(shù)組與
34、字符串,用printf ( ) 輸出字符、字符串?dāng)?shù)組中的內(nèi)容輸出一個(gè)字符:printf(“%c”, 數(shù)組元素); 輸出一個(gè)字符串:printff(“%s”, 數(shù)組名);printf ( )語(yǔ)句輸出字符串?dāng)?shù)組時(shí), 可以直接引用字符串?dāng)?shù)組名。因?yàn)? 字符串?dāng)?shù)組存放的是字符串第一個(gè)字符的地址碼。遇‘\0’結(jié)束!,7-28,7.2 字符數(shù)組與字符串,數(shù)值型數(shù)組和字符數(shù)組的輸入輸出在使用中的區(qū)別數(shù)值型數(shù)組:int data[4],
35、i;for(i=0;i<4;i++) scanf(“%d”,&data[i]);for(i=0;i<4;i++) printf(“%d ”,data[i]); // 循環(huán)輸入每一個(gè)數(shù)組元素字符數(shù)組:char str[20];scanf(“%s”, str); //變量名前沒(méi)有取地址符&printf(“%s\n ”,str); //直接輸入數(shù)組變量變量名,7-29,7.2 字符數(shù)組與字符串
36、,例 將從鍵盤上輸入的字符串的小寫(xiě)字符變成大寫(xiě)字符, 并輸出。設(shè):輸入的字符串存入字符數(shù)組string[ ]中。,#include “stdio.h”void main( ){ char string[25]; int i; printf(“\n Enter a string :”); scanf(“%s”,string); i=0; while(string[i]!=‘\0’)
37、 { if(string[i]>=‘a(chǎn)’&&string[i]<=‘z’) string[i]=string[i]-‘a(chǎn)’+‘A’; i++; } printf(“\n %s”, string);},運(yùn)行程序abCdeFGhijkLMN←┘ ABCDE
38、FGHIJKLMN,7-30,7.2 字符數(shù)組與字符串,例輸入一個(gè)字符串,求其長(zhǎng)度。分析:1) 設(shè) 字符數(shù)組 str[30] 2) 設(shè)變量 i =0 3) str[i]!=‘\0’ i++,#include “stdio.h”void main( ){ int i=0; char str[30]; printf(“\n請(qǐng)輸入一個(gè)字符串:"); gets(str)
39、; while(str[i]!='\0') i++; printf(“字符串長(zhǎng)度為:%d", i ); },運(yùn)行程序請(qǐng)輸入一個(gè)字符串: c language←┘ 字符串長(zhǎng)度為:10,7-31,7.2 字符數(shù)組與字符串,字符串處理函數(shù)gets( )和puts( ) 字符串輸入/輸出函數(shù)strcpy( ) 字符串考貝函數(shù),包含在string.h庫(kù)文件中,下同。形式:
40、strcpy(目的字符數(shù)組,源字符串);作用:將源字符串拷貝到目的字符數(shù)組中,遇到源字符串的終止符’\0’為止。函數(shù)返回值:目的字符數(shù)組的地址。,#include#include "string.h"void main( ){ char s[10],sp[ ]="HELLO"; strcpy(s,sp); s[0]='h'; s[
41、6]='!'; puts(s);},運(yùn)行結(jié)果: hELLO,7-32,7.2 字符數(shù)組與字符串,如果只需考貝字符串的一部分,可用函數(shù):strncpy(目的字符數(shù)組, 源字符串, 拷貝字符數(shù)),#include#include "string.h"void main( ){ char s[ ]=“This is a source string.”; char
42、 b[20]; strncpy(b,s,16); b[16]='\0'; printf("%s\n",b);},運(yùn)行結(jié)果: This is a source,7-33,7.2 字符數(shù)組與字符串,strcat( ) 字符串連接函數(shù)形式:strcat(目的字符數(shù)組,源字符串);作用:將源字符串連接到目的字符數(shù)組后面。函數(shù)返回值:目的字符數(shù)組的地址。,#inclu
43、de#include "string.h"void main( ){ char a[ ]="abcde"; char b[ ]="12345"; strcat(b,a); printf("%s,%s\n",a,b);},運(yùn)行結(jié)果: de, 12345abcde,出錯(cuò),因?yàn)閿?shù)組b長(zhǎng)度定義不夠,運(yùn)行結(jié)果: abcde, 12345
44、abcde,7-34,7.2 字符數(shù)組與字符串,strcmp( ) 字符串比較函數(shù)形式:strcmp(字符串1,字符串2);作用:對(duì)兩個(gè)字符串從各自第一個(gè)字符開(kāi)始進(jìn)行逐一比較,直到對(duì)應(yīng)字符不相同或到達(dá)串尾為止。函數(shù)返回值:小于0 __ 字符串1小于字符串2;等于0 __ 字符串1等于字符串2;大于0 __ 字符串1大于字符串2。,7-35,7.2 字符數(shù)組與字符串,例 輸入四個(gè)字符串,將ASCII值最大的字符串輸出。,#
45、include#include "string.h"void main( ){ int i; char str[10],temp[10]=“\0"; for ( i=0; i<4; i++) { gets(str); if(strcmp(temp,str)<0) strcpy(temp,str); }
46、 puts(temp);},運(yùn)行結(jié)果: apple cut mobile manager mobile,7-36,7.2 字符數(shù)組與字符串,strlen( ) 字符串長(zhǎng)度函數(shù)形式:strlen(字符串)作用:求字符串的實(shí)際字符個(gè)數(shù)(不包括’\0’)函數(shù)返回值:實(shí)際字符個(gè)數(shù),#include#include "string.h"void main( ){ char a[ ]="
47、\t\r\\\0will\n"; printf( "%d,%d", sizeof(a), strlen(a) );},運(yùn)行程序10, 3,7-37,7.3 多維數(shù)組,下標(biāo)個(gè)數(shù)大于1的數(shù)組叫多維數(shù)組。數(shù)組名后有兩個(gè)下標(biāo)的數(shù)組叫二維數(shù)組,例:int x[2][3]; 有三個(gè)下標(biāo)的數(shù)組叫三維數(shù)組。多維數(shù)組的定義定義: [數(shù)據(jù)存儲(chǔ)] 數(shù)據(jù)類型 數(shù)組名[下標(biāo)1][下標(biāo)2]…[下標(biāo)n];說(shuō)明
48、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)類型、數(shù)組名的說(shuō)明:同一維數(shù)組。下標(biāo):和一維數(shù)組不同的是有兩個(gè)方括號(hào),注意不能寫(xiě)成“int c[2,3];”。數(shù)組元素個(gè)數(shù)為: 下標(biāo)1?下標(biāo)2? .. .. ?下標(biāo)n 。例:int x[2][3]; x 是二維數(shù)組,有6個(gè)元素 (2×3=6),它們是: x[0][0], x[0][1], x[0][2], x[1][0]
49、, x[1][1], x[1][2]。 其全部元素?cái)?shù)值均為 int 型。,7-38,7.3 多維數(shù)組,多維數(shù)組的初始化方法一: int a [2] [3] = { { 1, 2, 3 }, { 4, 5, 6 } }; 等價(jià)于: int a [2] [3]; a [0] [0] = 1; a [0] [1]=2; a [0] [2]=3; a [1]
50、[0] = 4; a [1] [1]=5; a [1] [2]=6;方法二:將所有數(shù)據(jù)寫(xiě)在一個(gè)花括弧里,按數(shù)組排列順序給各元素賦值。 如:int a [2] [3]= { 1, 2, 3, 4, 5, 6 } ;方法三: int x[ ] [ 3 ]= { 1, 2, 3, 4, 5, 6 }; 即第一下標(biāo)值省略,但第二下標(biāo)值不能省略?。?!方法四:還可以只對(duì)部分元素賦值,
51、 如:int a[2][3]= { {1, 2, }, { 4, 5 } }; 結(jié)果為a[0][0]=1; a[0][1]=2; a[1][0]=4; a[1][1]=5;,7-39,7.3 多維數(shù)組,例 求矩陣a和b相加。矩陣相加的條件:兩矩陣行數(shù)、列數(shù)必須相等。,#includevoid main( ){ int a[2][3]={ {1,2,3}, {4,5,6} }; int b[2
52、][3]={ {1,2,3}, {4,5,6} }; int i,j,c[2][3]; for(i=0;i<2;i++) for(j=0;j<3;j++) c[i][j]=a[i][j]+b[i][j]; printf("a + b = \n"); for(i=0;i<2;i++) { for(j=0;j<3;j++
53、) printf("%-5d",c[i][j]); printf("\n"); }},運(yùn)行結(jié)果:a + b = 4 68 10 12,已知:a =1 2 34 5 6,已知:b =1 2 34 5 6,7-40,7.3
54、多維數(shù)組,多維數(shù)組的存儲(chǔ)與使用多維數(shù)組每維的下標(biāo)值都從0開(kāi)始,最先變化的是最右邊的下標(biāo)。在內(nèi)存中按下標(biāo)順序,依次存儲(chǔ)在內(nèi)存的連續(xù)空間。例如:int x[2][3];為數(shù)組X分配了2字節(jié)×6=12個(gè)字節(jié) 先存放第一行,即 x[0][0], x[0][1], x[0][2], 再存放第二行,即 x[1][0], x[1][1], x[1][2].,7-41,7.3 多維數(shù)組,多維數(shù)組元素的讀取操作同一維數(shù)組一樣,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言程序設(shè)計(jì)第七章網(wǎng)上作業(yè)
- 第七章 數(shù)組
- 第七章中級(jí)gpss程序設(shè)計(jì)
- 第七章 matlab的gui 程序設(shè)計(jì)
- 高級(jí)語(yǔ)言程序設(shè)計(jì)(c++) 數(shù)組 習(xí)題及答案
- [學(xué)習(xí)]樊媛媛c語(yǔ)言程序設(shè)計(jì)07-數(shù)組
- c語(yǔ)言程序設(shè)計(jì)第8章
- 匯編語(yǔ)言第七章答案
- 第七章
- c語(yǔ)言程序設(shè)計(jì)教程第七道第十二章課后練習(xí)題
- c語(yǔ)言程序設(shè)計(jì)第6章課件-
- 第七章問(wèn)卷設(shè)計(jì)
- 《c語(yǔ)言程序設(shè)計(jì)》
- c語(yǔ)言程序設(shè)計(jì)
- 第02章c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)
- 第七章 高級(jí)匯編語(yǔ)言技術(shù)
- c語(yǔ)言程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)
- 程序設(shè)計(jì)基礎(chǔ)c實(shí)驗(yàn)報(bào)告數(shù)組
評(píng)論
0/150
提交評(píng)論