欢迎来到天天文库
浏览记录
ID:50352034
大小:122.50 KB
页数:35页
时间:2020-03-08
《C语言程序设计基础与实训教程 第5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章数组第页主要内容一维数组的定义和引用二维数组的定义和引用字符数组与字符串第页5.1一维数组的定义和引用一维数组的定义一维数组元素的引用一维数组的初始化第页5.1.1一维数组的定义在C语言中,数组必须在使用前有明确的定义,以便编译程序分配给它们内存空间,即遵循“先定义后使用”的原则。一维数组定义的一般形式为:类型说明符数组名[常量表达式];类型说明符可以是前面介绍的基本数据类型的类型说明符。数组名命名规则和变量名相同,遵循标识符的命名规则。常量表达式表示元素的个数,即数组的长度,可以是常量和符号常量
2、,不能是变量,且必须用方括号[]括起来,其下标总是从0开始连续编号。第页5.1.1一维数组的定义相同类型的数组可以在同一个类型说明符下一起定义,互相间用逗号“,”隔开,次序无关。数组的长度不能依赖于程序中的变量,C语言不允许对数组大小作动态定义。第页5.1.2一维数组元素的引用按照“先定义后使用”的原则,在定义了数组之后,即可引用数组的元素了。C语言规定只能逐个引用数组元素,而不能一次引用整个数组。数组元素的引用格式如下:数组名[下标]其中下标可以为整型常量或整型表达式。第页5.1.2一维数组元素的引用
3、数据类型的作用就是用来处理一组同类型的数据。假设要把10个数据输入计算机,然后按与输入相反的次序进行输出,即最后一个输入的数据应该第一个输出,则程序可以编写如下:main(){inti,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--)printf("%d",a[i]);}第页5.1.3一维数组的初始化在定义时对全部数组元素赋初值。在定义时只给一部分元素赋初值。如果想使一个数组中全部元素的初值为0,可以写成:inta[6]={0,0,0,
4、0,0,0};或者inta[6]={0};但是不能写成:inta[6]={0*6};在对全部数组元素赋初值时,可以不指定数组长度,数组的长度由初始值的个数来确定。第页5.1.3一维数组的初始化【例】计算Fibonacci数列的前15个数,用数组来处理。main(){inti;intf[15]={1,1};for(i=2;i<15;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<15;i++){if(i%5==0)printf("");printf("%12d",f[i]);}}第页
5、5.1.3一维数组的初始化【例】从键盘输入n(0#defineN100voidmain(){inta[N],n,i,j,ind,c1,c2;do{printf("输入n(O6、7、n>=100);printf("输人数组元素:");第页5.1.3一维数组的初始化for(i=0;i8、a[i]);for(c2=i=0;ic29、10、c1==c2&&a[i]>a[ind]){c2=c1;ind=i;}}printf("其中%d出现%d次",a[ind],c2);}第页5.2二维数组的定义和引用二维数组的定义二维数组元素的引用二维数组的初始化第页5.2.1二维数组的定义二维数组定义的一般形式为:类型说明符数组名[常量表达式1][常量表达式2];其中常量表达式1的值说明了数组的行11、数,常量表达式2的值说明了数组的列数。可见,二维数组具有两个下标。例如:inta[2][3];表示数组a是二维数组,具有2行3列,每个元素都是int型的。注意不能写成:inta[2,3];实际上,数组描述了相同类型且连续存储的数据集合。C语言中,二维数组的运算存储顺序是:按行存放,即在内存中先存入第一行的元素,再存放第二行的元素。int[2][3];共有6个元素,其存放顺序为:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]第页5.2.1二维数组的定义定义三12、维数组a,有24个元素,在内存中存储顺序为:a[0][0][0]a[0][0][1]a[0][0][2]a[0][0][3]a[0][1][0]a[0][1][1]a[0][1][2]a[0][1][3]a[0][2][0]a[0][2][1]a[0][2][2]a[0][2][3]a[1][0][0]a[1][0][1]a[1][0][2]a[1][0][3]a[1][1][0]a[1][1][1]a[1][1][2]a[1][1][3]
6、
7、n>=100);printf("输人数组元素:");第页5.1.3一维数组的初始化for(i=0;i8、a[i]);for(c2=i=0;ic29、10、c1==c2&&a[i]>a[ind]){c2=c1;ind=i;}}printf("其中%d出现%d次",a[ind],c2);}第页5.2二维数组的定义和引用二维数组的定义二维数组元素的引用二维数组的初始化第页5.2.1二维数组的定义二维数组定义的一般形式为:类型说明符数组名[常量表达式1][常量表达式2];其中常量表达式1的值说明了数组的行11、数,常量表达式2的值说明了数组的列数。可见,二维数组具有两个下标。例如:inta[2][3];表示数组a是二维数组,具有2行3列,每个元素都是int型的。注意不能写成:inta[2,3];实际上,数组描述了相同类型且连续存储的数据集合。C语言中,二维数组的运算存储顺序是:按行存放,即在内存中先存入第一行的元素,再存放第二行的元素。int[2][3];共有6个元素,其存放顺序为:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]第页5.2.1二维数组的定义定义三12、维数组a,有24个元素,在内存中存储顺序为:a[0][0][0]a[0][0][1]a[0][0][2]a[0][0][3]a[0][1][0]a[0][1][1]a[0][1][2]a[0][1][3]a[0][2][0]a[0][2][1]a[0][2][2]a[0][2][3]a[1][0][0]a[1][0][1]a[1][0][2]a[1][0][3]a[1][1][0]a[1][1][1]a[1][1][2]a[1][1][3]
8、a[i]);for(c2=i=0;ic2
9、
10、c1==c2&&a[i]>a[ind]){c2=c1;ind=i;}}printf("其中%d出现%d次",a[ind],c2);}第页5.2二维数组的定义和引用二维数组的定义二维数组元素的引用二维数组的初始化第页5.2.1二维数组的定义二维数组定义的一般形式为:类型说明符数组名[常量表达式1][常量表达式2];其中常量表达式1的值说明了数组的行
11、数,常量表达式2的值说明了数组的列数。可见,二维数组具有两个下标。例如:inta[2][3];表示数组a是二维数组,具有2行3列,每个元素都是int型的。注意不能写成:inta[2,3];实际上,数组描述了相同类型且连续存储的数据集合。C语言中,二维数组的运算存储顺序是:按行存放,即在内存中先存入第一行的元素,再存放第二行的元素。int[2][3];共有6个元素,其存放顺序为:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]第页5.2.1二维数组的定义定义三
12、维数组a,有24个元素,在内存中存储顺序为:a[0][0][0]a[0][0][1]a[0][0][2]a[0][0][3]a[0][1][0]a[0][1][1]a[0][1][2]a[0][1][3]a[0][2][0]a[0][2][1]a[0][2][2]a[0][2][3]a[1][0][0]a[1][0][1]a[1][0][2]a[1][0][3]a[1][1][0]a[1][1][1]a[1][1][2]a[1][1][3]
此文档下载收益归作者所有