![C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用_第1頁(yè)](http://file4.renrendoc.com/view/3d4c0f7f2b8c720c93e1bb2ae972570a/3d4c0f7f2b8c720c93e1bb2ae972570a1.gif)
![C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用_第2頁(yè)](http://file4.renrendoc.com/view/3d4c0f7f2b8c720c93e1bb2ae972570a/3d4c0f7f2b8c720c93e1bb2ae972570a2.gif)
![C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用_第3頁(yè)](http://file4.renrendoc.com/view/3d4c0f7f2b8c720c93e1bb2ae972570a/3d4c0f7f2b8c720c93e1bb2ae972570a3.gif)
![C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用_第4頁(yè)](http://file4.renrendoc.com/view/3d4c0f7f2b8c720c93e1bb2ae972570a/3d4c0f7f2b8c720c93e1bb2ae972570a4.gif)
![C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用_第5頁(yè)](http://file4.renrendoc.com/view/3d4c0f7f2b8c720c93e1bb2ae972570a/3d4c0f7f2b8c720c93e1bb2ae972570a5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
<<C語(yǔ)言程序設(shè)計(jì)>>課程第6章數(shù)組的使用C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第1頁(yè)。主要內(nèi)容1、一維數(shù)組2、一維數(shù)組3、字符數(shù)組與字符串4、綜合應(yīng)用案例C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第2頁(yè)。問(wèn)題引入程序太繁瑣聲明40個(gè)變量輸入時(shí)要書寫40個(gè)變量計(jì)算時(shí)要書寫40個(gè)變量編程:求40名學(xué)生的C語(yǔ)言成績(jī)求平均分。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第3頁(yè)。問(wèn)題引入數(shù)組C語(yǔ)言提供了“數(shù)組”這一構(gòu)造類型來(lái)表示一批具有相同屬性的數(shù)據(jù)。同時(shí)將數(shù)組與循環(huán)結(jié)合起來(lái),快速地處理大批量的數(shù)據(jù),極大地提高了工作效率。
C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第4頁(yè)。6.1一維數(shù)組概念:一組用來(lái)存放多個(gè)相同類型的數(shù)據(jù)集合,該集合中的每一個(gè)成員稱為元素,每個(gè)數(shù)組元素通過(guò)數(shù)組名和一個(gè)下標(biāo)就能唯一確定,所以稱之為一維數(shù)組。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第5頁(yè)。6.1一維數(shù)組定義格式:類型標(biāo)識(shí)符數(shù)組名[整型常量表達(dá)式];例如:inta[10];意義:數(shù)組名為a,含有10個(gè)數(shù)組元素,下標(biāo)從0~9,分別是a[0]a[1]…a[9]C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第6頁(yè)。6.1一維數(shù)組inta[10];說(shuō)明:(1)“整型常量表達(dá)式”表示數(shù)組長(zhǎng)度(數(shù)組元素個(gè)數(shù)),數(shù)組元素下標(biāo)從0開始;(2)C編譯系統(tǒng)為數(shù)組分配連續(xù)的存儲(chǔ)空間,數(shù)組名代表數(shù)組在內(nèi)存中存放的首地址(即數(shù)組第一個(gè)元素在內(nèi)存中的存儲(chǔ)地址)。intn=20;intarray[n];
C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第7頁(yè)。6.1一維數(shù)組初始化:如果數(shù)組元素的值是已知的,在定義數(shù)組的同時(shí)可以給各個(gè)數(shù)組元素賦值,稱為數(shù)組的初始化。(1)完全初始化:
intb[5]={1,2,3,4,5};intb[]={1,2,3,4,5};(2)部分初始化:只給一部分元素賦值。例如inta[10]={0,1,2,3,4};
部分初始化時(shí),編譯器會(huì)為沒有初始化的元素補(bǔ)0(數(shù)值型變量)或‘\0’(字符型變量)C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第8頁(yè)。6.1一維數(shù)組數(shù)組元素引用:例如:inta[10];a[0]=0;//引用a[0]元素,為其賦值為0scanf(“%d”,&a[1]);//引用a[1]元素,為其輸入值printf(“%d”,a[0]+a[1]);//引用a[0]、a[1]元素,數(shù)組名[下標(biāo)]注意:合法數(shù)組元素的范圍是a[0]~a[數(shù)組長(zhǎng)度-1]C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第9頁(yè)。6.1一維數(shù)組使用數(shù)組關(guān)鍵是使用數(shù)組元素,由于數(shù)組元素的名稱是由數(shù)組名和下標(biāo)組成,下標(biāo)是一系列相鄰的整數(shù)值,所以數(shù)組的輸入和輸出一般是利用for循環(huán)完成?!纠?-7】使用一維數(shù)組輸入10個(gè)數(shù)據(jù),并輸出。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第10頁(yè)。6.1一維數(shù)組#include<stdio.h>voidmain(){inta[10],i;for(i=0;i<10;i++)//為十個(gè)數(shù)組元素輸入值
scanf("%d",&a[i]);for(i=0;i<10;i++)//輸出十個(gè)數(shù)組元素值
printf("%d",a[i]);}參考代碼C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第11頁(yè)。6.1一維數(shù)組數(shù)組定義:inta[10];以下表達(dá)是錯(cuò)誤的:(1)認(rèn)為a[1]是數(shù)組的第一個(gè)元素,a[10]是數(shù)組的最后一個(gè)元素。(2)認(rèn)為通過(guò)a[10]可以引用數(shù)組所有元素。a[10]={0,1,2,3,4,5,6,7,8,9};//為元素a[0]到a[9]賦值a[10]=0;//想為數(shù)組元素a[0]到a[9]都賦值0scanf(“%d”,a[10]);//想為數(shù)組各元素輸入值printf(“%d”,a[10]);//想輸出數(shù)組各元素值C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第12頁(yè)。6.1一維數(shù)組【例6-7】十個(gè)評(píng)委進(jìn)行評(píng)分,編程找出最高分和最低分。maxminC語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第13頁(yè)。6.1一維數(shù)組#include<stdio.h>voidmain(){inta[10],i;intmax,min;//max最高分,min最低分
printf("請(qǐng)輸入十個(gè)評(píng)委打分:");for(i=0;i<10;i++)//輸入評(píng)委打分
scanf("%d",&a[i]);max=min=a[0];//假設(shè)最高分和最低分均為a[0]for(i=1;i<10;i++)//依次和各個(gè)元素比較
{if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];}printf("最高分為:%d,最低分為:%d.",max,min);}參考代碼C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第14頁(yè)。6.1一維數(shù)組【隨堂練習(xí)6-2】輸入五個(gè)整數(shù),并按逆序輸出。#include<stdio.h>voidmain(){inta[5],i;printf("pleaseinput5number");for(i=0;i<=4;i++)scanf("%d",&a[i]);for(i=4;i>=0;i--)printf("%d",a[i]);}C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第15頁(yè)。6.2二維數(shù)組一維數(shù)組是線性結(jié)構(gòu),但有時(shí)數(shù)據(jù)邏輯上是一種二維表結(jié)構(gòu),用一維數(shù)組處理就不夠方便。C中提供二維數(shù)組來(lái)存儲(chǔ)和處理類似的二維表結(jié)構(gòu)C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第16頁(yè)。6.2二維數(shù)組類型標(biāo)識(shí)符數(shù)組名[行數(shù)][列數(shù)];例如:inta[3][4];整型二維數(shù)組名字為aa[0][0]
a[0][1]二數(shù)組的定義3行4列共12個(gè)元素
a[0][2]
a[0][3]
a[1][0]
a[1][1]
a[1][2]
a[1][3]
a[2][0]
a[2][1]
a[2][2]
a[2][3]第0行第1行第2行第0列第1列第2列第3列C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第17頁(yè)。6.2二維數(shù)組二數(shù)組的存儲(chǔ)按行存儲(chǔ):先存放a[0]行,再存放a[1]行,依次類推。inta[3][4];C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第18頁(yè)。6.2二維數(shù)組二數(shù)組的初始化inta[3][4];例inta[2][3]={{1,2,3},{4,5,6}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123456全部初始化例inta[2][3]={{1,2},{4}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]120400部分初始化例inta[2][3]={1,2,3,4,5,6};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123456全部初始化例inta[2][3]={1,2,4};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]124000部分初始化C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第19頁(yè)。6.2二維數(shù)組二數(shù)組的元素的引用數(shù)組名[下標(biāo)1][下標(biāo)2]二維數(shù)組元素的訪問(wèn)涉及第一維和第二維兩個(gè)下標(biāo),所以對(duì)二維數(shù)組的操作通常和二重循環(huán)相結(jié)合。【例6-14】二維數(shù)組數(shù)據(jù)的輸入和輸出。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第20頁(yè)。6.2二維數(shù)組#include<stdio.h>voidmain(){inta[3][4],i,j;for(i=0;i<3;i++)//二維數(shù)組的輸入
for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)//二維數(shù)組的輸出
{for(j=0;j<4;j++)printf("%d",a[i][j]);printf("\n");//每輸出一行后換行
}}參考代碼C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第21頁(yè)。6.2二維數(shù)組【例6-14】將一個(gè)3*3的矩陣存入二維數(shù)組中,找出其中的最大值以及對(duì)應(yīng)的行下標(biāo)和列下標(biāo)。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第22頁(yè)。6.2二維數(shù)組#include<stdio.h>voidmain(){inta[3][3],i,j;intmax,row=0,colum=0;for(i=0;i<3;i++)//輸入矩陣
for(j=0;j<3;j++)scanf("%d",&a[i][j]);max=a[0][0];參考代碼C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第23頁(yè)。6.2二維數(shù)組for(i=0;i<3;i++)for(j=0;j<3;j++)if(max<a[i][j]) {max=a[i][j]; row=i;//記錄行下標(biāo)和列下標(biāo)
colum=j; }printf("最大值是%d,行下標(biāo)為%d,列下標(biāo)為%d.\n",max,row,colum);}C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第24頁(yè)。6.3字符數(shù)組與字符串字符串常量“8”“Boy”“”字符序列
字符串與字符的區(qū)別“8”‘8’“thankyou!”例從下面的數(shù)據(jù)中分別找出字符串常量與字符常數(shù)。‘123’1字符常量用單引號(hào)括起來(lái)2字符常量是單個(gè)字符
字符串常量用雙引號(hào)括起來(lái)字符串常量可有若干個(gè)字符3字符串常量有結(jié)束符“A”‘A’A\0字符串結(jié)束標(biāo)志A字符串字符字符串如何處理字符串沒有字符串變量用字符數(shù)組存儲(chǔ)字符串C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第25頁(yè)。6.3字符數(shù)組與字符串char數(shù)組名[常量];字符數(shù)組定義方式例:charc[10];……c[0]c[1]c[9]每個(gè)數(shù)組元素占一個(gè)字節(jié)初始化1逐個(gè)數(shù)組元素賦初值charc[6]={‘P’,’a’,’r’,’t’,’y’,’\0’};Party\02應(yīng)用字符串常量賦初值charc[6]={“party”};charc[6]=“party”;等價(jià)于C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第26頁(yè)。字符數(shù)組的輸入和輸出main(){charstr[20];scanf("%s",str);printf("%s",str);}beifang輸入遇到空格或回車就結(jié)束自動(dòng)加‘\0’輸出遇到‘\0’就結(jié)束輸出str[0]str[19]…bei\01、以scanf、printf的形式輸入輸出,輸入字符串中不能有空格。注意:格式說(shuō)明符%s,輸入位置只寫數(shù)組名,無(wú)&。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第27頁(yè)。6.3字符數(shù)組與字符串字符串處理函數(shù)str[0]str[19]…gets、puts函數(shù)輸入:gets函數(shù)輸出:puts函數(shù)gets(數(shù)組名)puts(數(shù)組名)例beifangbeibeifang
gets:自動(dòng)添加‘\0’puts:自動(dòng)輸出‘\n’fang\0
main(){charstr[20];gets(str);puts(str);}C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第28頁(yè)。區(qū)別#include"stdio.h"voidmain(){charstr[10];gets(str);puts(str);}#include"stdio.h"voidmain(){charstr[10];scanf("%s",str);printf("%s",str);}輸入遇到空格、回車就結(jié)束,空格不作為字符寫入字符串遇到回車輸入結(jié)束,空格作為字符寫入字符串C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第29頁(yè)。6.3字符數(shù)組與字符串3、字符串長(zhǎng)度求取函數(shù)strlen(str);求str所代表的字符串的長(zhǎng)度,不包括字符串結(jié)束標(biāo)志’\0’。
intlen;charstr[20]="China";len=strlen(str);//len的值為5C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第30頁(yè)。6.3字符數(shù)組與字符串4、字符串復(fù)制函數(shù)strcpy()函數(shù)調(diào)用格式:strcpy(str1,str2);函數(shù)功能:將字符串str2復(fù)制到str1對(duì)應(yīng)的字符數(shù)組或存儲(chǔ)區(qū)域中。charstr1[20],str2[20]="China";strcpy(str1,str2);puts(str1);//輸出字符串str1,即China說(shuō)明:str1的存儲(chǔ)空間不能小于str2的存儲(chǔ)空間。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第31頁(yè)。6.3字符數(shù)組與字符串5、字符串連接函數(shù)strcat()
函數(shù)調(diào)用格式:strcat(str1,str2);函數(shù)功能:去掉str1后的’\0’,將字符串str2連接到str1的有效字符之后。charstr1[20]="Hello!",str2[20]="China.";strcat(str1,str2);puts(str1);//輸出字符串str1,即Hello!China.說(shuō)明:str1的存儲(chǔ)空間要能容得下連接后的字符串。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第32頁(yè)。6.3字符數(shù)組與字符串6、字符串比較函數(shù)strcmp()
函數(shù)調(diào)用格式:strcmp(str1,str2);函數(shù)功能:按字典序比較字符串str1和str2的大小。比較規(guī)則:將兩個(gè)字符串自左至右逐個(gè)字符按ASCII值大小比較,直到出現(xiàn)不同的字符或遇’\0’為止。若全部字符相同,則認(rèn)為兩個(gè)字符串相等,返回0值;否則,計(jì)算第一對(duì)不同字符的ASCII值之差,若為正整數(shù),則str1>str2,返回值為1;若為負(fù)整數(shù),則str1<str2,返回值為-1。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第33頁(yè)。6.3字符數(shù)組與字符串charstr1[20]="Chinese",str2[20]="China";if(strcmp(str1,str2)>0)//比較大小,輸出較大者puts(str1);elseputs(str2);【例6-22】注意:字符串的比較,不能用str1>str2的形式來(lái)實(shí)現(xiàn)。
C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第34頁(yè)。6.4綜合應(yīng)用案例例6-23采用冒泡法對(duì)一維數(shù)組中的十個(gè)整數(shù)排序
分析設(shè)一維數(shù)組a有N個(gè)元素,要求從小到大排序。冒法排序的過(guò)程描述如下:(1)每次從首元素開始兩兩比較,即a[j]和a[j+1]比較,若a[j]>a[j+1]則兩元素交換,否則不交換。(2)對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。每對(duì)元素比較后都可得到“小數(shù)在先,大數(shù)在后”的結(jié)果,這樣進(jìn)行一輪以后,數(shù)組最大值就排在了數(shù)組最后一個(gè)位置。(3)針對(duì)所有的元素(除最后一個(gè)元素)重復(fù)以上的步驟,數(shù)組次大值就再倒數(shù)第二的位置。(4)依此類推,經(jīng)過(guò)N-1輪比較后完成排序。C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第35頁(yè)。6.4綜合應(yīng)用案例54091284509128450918245098124509812最大值一輪排序4509128C語(yǔ)言程序設(shè)計(jì)第6章-數(shù)組的使用全文共40頁(yè),當(dāng)前為第36頁(yè)。#include<stdio.h>#defineN10voidmain(){inti,j,k,t,a[N];printf("請(qǐng)輸入%d個(gè)整數(shù):\n",N);//輸入待排序的N個(gè)整數(shù)
for(i=0;i<N;i++)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高阻隔性封裝材料項(xiàng)目提案報(bào)告
- 2025年生鮮電商項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年停車服務(wù)授權(quán)協(xié)議范本
- 2025年合作招商協(xié)議范例
- 2025年投資策劃合作協(xié)議書樣本
- 2025年醫(yī)療美容服務(wù)合同范本
- 2025年體育館施工協(xié)作協(xié)議
- 2025年住宅區(qū)綠化工程合同協(xié)議書
- 2025年醫(yī)療用品全國(guó)總策劃代理合同
- 2025年二手房產(chǎn)合伙人共同投資協(xié)議示例
- 中建抹灰工程專項(xiàng)施工方案
- 地方融資平臺(tái)債務(wù)和政府中長(zhǎng)期支出事項(xiàng)監(jiān)測(cè)平臺(tái)操作手冊(cè)-單位
- 放射科護(hù)理常規(guī)
- 洗刷書包(課件)三年級(jí)上冊(cè)勞動(dòng)
- 儒釋道文化秒解
- 新時(shí)代中小學(xué)教師職業(yè)行為十項(xiàng)準(zhǔn)則
- 人教版八年級(jí)上冊(cè)英語(yǔ)1-4單元測(cè)試卷(含答案)
- 初中數(shù)學(xué)教學(xué)經(jīng)驗(yàn)分享
- 2024年銀行考試-興業(yè)銀行考試近5年真題附答案
- 高考數(shù)學(xué)導(dǎo)數(shù)知識(shí)題型全歸納專題11導(dǎo)數(shù)壓軸題之隱零點(diǎn)問(wèn)題(原卷版+解析)
- 2024年公開招聘人員報(bào)名資格審查表
評(píng)論
0/150
提交評(píng)論