資源描述:
《c語言 數(shù)組ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第6章數(shù)組內(nèi)容提要數(shù)組定義和基本操作;常用算法:求最大最小值、排序、查找等;用字符數(shù)組存取字符串;使用字符串處理函數(shù)處理字符串為什么引入數(shù)組保存大量同類型的相關(guān)數(shù)據(jù)如矩陣運算,表格數(shù)據(jù)等一維數(shù)組(Array)的定義類型數(shù)組名[長度];長度為常量表達式,不可以是變量(但C99提供了動態(tài)數(shù)組)例:inta[10];定義一個有10個元素的數(shù)組,每個元素的類型均為int使用a[0]、a[1]、a[2]、……、a[9]這樣的形式訪問每個元素。系統(tǒng)會在內(nèi)存分配連續(xù)的10個int空間給此數(shù)組a就是此數(shù)組的首地址intn=5;
2、inta[n];×//長度n不可以是變量一維數(shù)組(Array)的定義類型數(shù)組名[長度];長度為常量表達式,不可以是變量(但C99提供了動態(tài)數(shù)組)例:inta[10];定義一個有10個元素的數(shù)組,每個元素的類型均為int系統(tǒng)會在內(nèi)存分配連續(xù)的10個int空間給此數(shù)組a是數(shù)組名,同時也代表著此數(shù)組的首地址×//長度n不可以是變量一維數(shù)組的初始化inta[5]={12,34,56,78,9};inta[5]={12};inta[]={12,34,56,78,9};123456789a[0]a[1]a[2]a[3]a[
3、4]120000a[0]a[1]a[2]a[3]a[4]123456789a[0]a[1]a[2]a[3]a[4]×√√√一維數(shù)組的賦值數(shù)組賦值和普通變量賦值一樣只能逐個對數(shù)組元素進行操作!不能整體賦值!切忌下標越界!inta[4];for(i=0;i<4;i++)a[i]=2*i+1;√√×inta[4],b[4];……………;a=b;inta[4];a[0]=1;a[1]=3;a[2]=5;a[3]=7;//a和b是數(shù)組首地址,是地址常量//地址常量a不可以被賦值如何使兩個一維數(shù)組的值相等8inta[4]=
4、{1,2,3,4},b[4];方法1:逐個元素賦值b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];方法2:通過循環(huán)賦值inti;for(i=0;i<4;i++)b[i]=a[i];一維數(shù)組的輸入和輸出inta[10],i=0;scanf(“%d”,&a[i]);//方法1:輸入第i個數(shù)組元素for(i=0;i<10;i++)scanf("%d",&a[i]);//方法2:循環(huán)輸入數(shù)組元素inta[10],i=0;printf(“%d”,a[i]);//方法1:輸出第i個數(shù)組元素f
5、or(i=0;i<10;i++)printf("%d",a[i]);//方法2:循環(huán)輸出數(shù)組元素耳聽為虛,眼見為實一維數(shù)組在內(nèi)存中是連續(xù)存放的一維數(shù)組名就是此數(shù)組首元素的地址數(shù)組下標越界的嚴重性證明:數(shù)組在內(nèi)存中是連續(xù)分布的;數(shù)組名就是數(shù)組的首地址inti;inta[6]={1,3,5,7,9,11};for(i=0;i<=5;i++)printf("a[%d]的值是%2d,地址是%p",i,a[i],&a[i]);printf(“a的size是%d”,sizeof(a));printf(“a的值是%p
6、”,a);//a是數(shù)組名,也是首元素的地址//a的值和&a[0]的值相等后果很嚴重!下標越界inti,a[6];for(i=1;i<=6;i++){a[i]=0;printf("a[%d]的值是%d",i,a[i]);}總是出現(xiàn)莫名其妙的錯誤,且不容易被發(fā)現(xiàn)!越界下標將訪問數(shù)組以外的空間,可能帶來嚴重后果!C語言不提供下標越界檢查,所以一定要注意!數(shù)組的使用數(shù)組的下標都是從0開始對數(shù)組每個元素的使用與普通變量無異可以用任意表達式作為下標,動態(tài)決定訪問哪個元素for(i=0;i7、=2*i;下標越界是大忌!使用大于最大下標的下標,將訪問數(shù)組以外的空間。那里的數(shù)據(jù)是未知的,可能帶來嚴重后果sizeof可以用來獲得數(shù)組大小Fibonacci數(shù)列1,1,2,3,5,8,13,21,34,55…兔子繁殖問題(數(shù)組版)兔子問題(數(shù)組版)#include#defineYEAR_MONTH12intmain(){intf[YEAR_MONTH+1]={0,1,1};intmonth;for(month=3;month<=YEAR_MONTH;month++){f[month]=f[m
8、onth-1]+f[month-2];}for(month=1;month<=YEAR_MONTH;month++){printf("%dt",f[month]);}retuun0;}反轉(zhuǎn)并打印數(shù)組#include<……>#defineN10intmain(){inti,temp,a[N];srand(time(NULL));for(i=0;i