《C语言程序设计》 第5章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2二维数组
例如: int a[3][4]; 此定义说明数组a为3行4列,共有12个元素,每个元素 都是整型。定义完二维数组后编译系统会为数组开辟一 连串的存储空间,二维数组是按行存放即先放第0行的元 素,之后是第1行.... 注意:二维数组元素的写法必须是用[]括起来。
5.1.3一维数组的初始化
2.可以对部分元素进行初始化,其余剩下的元素自动赋值 为0。例如: int a[6]={1,2,3,4}; 数组a共有6个元素,其中前4个依次为1,2,3,4,后 面两个都为0。 3. 可以对所有数组元素赋值0,例如: int a[5]={0,0,0,0,0}; 但不能写成 int a[5]={0*5}; 注意:对数组初始化时,初始化值的个数可以小于或等 于数组长度,但不能多余数组长度,否则会引起编译错 误
从上例看出数组元素只能逐个赋初值,比较的时候也是逐 个进行比较,通过数组的下标来区分数组元素。
5.1.3一维数组的初始化
数组元素的赋初值和普通变量一样,数组初始化的
一般形式如下: 数据类型 数组名[常量表达式]={初值表}; 对数组元素的赋初值有下面几种情况: 1.一维数组可以在定义时可以对全部数组元素进行初始化, 数据间用逗号隔开。例如: int a[6]={1,3,5,7,9,11}; 经过上述初始化后, a[0]=1,a[1]=3,a[2]=5,a[3]=7,a[4]=9,a[5]=11。在这种情况 下,数组长度可以省略,即int a[ ]={1,3,5,7,9,11};
5.1.4一维数组的应用
例5.3 用冒泡法对8个数排序 分析:排序过程: 1.比较第一个数与第二个数,若为逆序a[0]>a[1],则交 换;然后比较第二个数与第三个数;依次类推,直至第n1个数和第n个数比较为止——第一趟冒泡排序,结果最 大的数被安置在最后一个元素位置上 2. 对前n-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置 3. 重复上述过程,共经过n-1趟冒泡排序后,排序结束
5.1.4一维数组的应用
#include <stdio.h> main() { int a[9],i,j,t; printf("Input 8 numbers:\n"); for(i=1;i<9;i++) scanf("%d",&a[i]); printf("\n"); for(j=1;j<=7;j++) for(i=1;i<=8-j;i++) if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf("The sorted numbers:\n"); for(i=1;i<9;i++) printf("%d ",a[i]); } 运行结果:
5.1.2一维数组的引用
◆ 数组应先定义,然后才能使用。C语言中,只能逐个
引用数组的元素,而不能整体引用数组。 数组元素的表示形式为: 数组名[下标] 其中:下标可以是整形常量、整形变量及其表达式。C语言 中的下标从0起始,当数组的长度为n时,下标的取值范围 为0,1,2,…,n-1。下标的值不能超过数组长度
5.1.1
一维数组的定义
使用数组使应注意如下几点: 1. 数组名的命名规则同变量,用标识符表示。 2. 常量表达式表示数组中元素的个数,即数组的长度。 3. 常量表达式只能用方括号括起来。常量表达式的值一定是正的 整形常 量表达式,可以是常量、符号常量,但不能包含变量, 即不允许对数组的长度作动态的定义。例如,下面对数组的定 义是不允许的: int n; int a[n]; 4. 相同类型的变量和数组可以共用一个类型说明符,它们之间用 逗号分隔开,如: float a ,c[10]; 5. 数组名代表该数组在内存中的起始地址。如 int a[4];一个整型 变量在内存中占2个字节,编译系统为数组a开辟连续8个字节 的存储空间, a,&a[0]都表示数组a的起始地址(首地址)。
5.1.4一维数组的应用
例5.2利用数组求Fibonacci数列问题 main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0)printf("\n"); printf("%8d",f[i]); } } 运行结果: 程序如下:
第五章 数组
本章目录
5.1一维数组 5.2二维数组 5.3字符数组和字符串 5.4程序举例
5.1 一维数组
数组是有序数据的集合。数组源自文库
中的每一个元素都属于同一个数据 类型。用一个统一的数组名和下标 来唯一地确定数组中的元素。
5.1.1
一维数组的定义
一维数组定义的格式为: 类型说明符 数组名[常量表达式]; 类型说明符,表示数组中的每个元素所共同具有的 类型。数组名的命名规则符合标识符的书写。方括 号内的常量表达式(或称数组下标)的值是数组的 长度即数组所包含的元素个数。 例:int a[10]; 其中,int为类型说明符,表示数组中的每个元素 都是整型类型,即数组中的每一个元素都为int类型; a是数组名,常量表达式表示该数组共有10个元素。
5.1.2一维数组的引用
例5.1输入10个整数,求其中的最大值
main() { int a[10],i,max; 运行结果: for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0]; for(i=1;i<10;i++) if(a[i]>max) max=a[i]; printf("max=%d\n",max); } 输入23 98 -67 13 0 -3 106 -7 38 74
5.2二维数组 5.2.1二维数组的定义 C语言允许定义和使用多维数组,本节以二维 数组为 例介绍多维数组。二维数组主要用于处 理矩阵和行列式。 二维数组定义的一般形式为: 类型说明符 数组名[常量表达式1][常量表达式2]; 其中,常量表达式1表示第一维下标的长度,可 以说指定数组元素的行数;常量表达式2表示第 二维下标的长度,可以说指定了数组元素的列数。