第九章数组 前面所用到的数据为基本类型(整、实、字符), 为了丰富数据类型,须提供强有力的数据表达方 式。C语言提供了一种构造类型数据——由基本类 型按某一规则组合在一起。 其中数组是C语言中最简单的构造类型:同 种(基本)类型按一定顺序组合在一起的数据类 型
第九章 数组 前面所用到的数据为基本类型(整、实、字符), 为了丰富数据类型 ,须提供强有力的数据表达方 式。C语言提供了一种构造类型数据–––由基本类 型按某一规则组合在一起。 其中数组是C语言中最简单的构造类型:同 一种(基本)类型按一定顺序组合在一起的数据类 型
TC IDE 数组中几个重要概念 ※C语言数据类型分为: (1)基本类型(整形、字符型、浮点型) (2)组合类型 组合类型:数组类型、结构体类型、共用体类型 ※数组定义:是指一组同类型数据组成的序列。 ※数组表示方法: (1)用一个统一的数组名称来标识这一组数据; int age 3; age (2)用下标来指示数组中元素的序号。 例 age[0l,agel,age2 注意同一数组中的所有元素必须属于同一数据类型
数组中几个重要概念 ※ C语言数据类型分为: (1)基本类型(整形、字符型、浮点型) (2)组合类型 组合类型: 数组类型、结构体类型、共用体类型。 ※ 数组定义:是指一组同类型数据组成的序列。 ※ 数组表示方法: (1)用一个统一的数组名称来标识这一组数据; int age[3]; age (2)用下标来指示数组中元素的序号。 例 age[0], age[1], age[2] 注意:同一数组中的所有元素必须属于同一数据类型。 TC IDE
§9.1一维数组定义 和数组元素引用 9.1.1一维数组的定义 形式类型说明符数组名[常量表达式 例:inta[20] float x[100]; ●1.数组名的确定方法同变量名 ●2.C语言用方括号[]表示数组元素个数
§9.1 一维数组定义 和数组元素引用 9.1.1 一维数组的定义 1. 数组名的确定方法同变量名。 2. C语言用方括号[ ]表示数组元素个数。 形式: 类型说明符 数组名[常量表达式]; 例: int a [20]; float x [100];
●3.常量表达式为常量或符号常量。不允许有变量, 其表达式的值代表了元素的个数。 例:inta[20] 表示有20个元素 且元素从0开始编排:a[oa]-.a[19
3. 常量表达式为常量或符号常量。不允许有变量, 其表达式的值代表了元素的个数。 例: int a[20]; 表示有20个元素 且元素从0开始编排:a[0],a[1]…,a [19]
●4.可在定义时对数组赋初值,方法如下: 对全部元素赋初值 inta10={10,11,12,13,14,15,16,17,18,19}; 对部分元素赋初值 inta[10}={0,1,2,3,4}; 前5个元素初值分别为0,1,2,3,4,后5个元素 初值为0
4. 可在定义时对数组赋初值, 方法如下: 对部分元素赋初值 int a[10]={0,1,2,3,4}; 对全部元素赋初值 int a[10]={10, 11, 12, 13, 14, 15, 16, 17, 18, 19}; 前5个元素初值分别为0,1,2,3,4,后5个元素 初值为0
若赋全部元素的初值,可省略常量表达式 inta[]={0,12,3}; 表示a[4],即只有4个元素
若赋全部元素的初值,可省略常量表达式 int a[ ]={0,1,2,3}; 表示a[4],即只有4个元素
91.2一维数组的引用 须象使用变量那样,数组要先定义,后使用 C编译不检査下标是否“越界”。 ●2.引用方式数组名[下标] 代表了一个元素等价一个同类型的变量 例:a[0]*5+a[]*6为正确的算术表达式 ●3.一维数组各元素分配在连续地内存单元之中
9.1.2 一维数组的引用 2. 引用方式: 数组名[下标] 代表了一个元素,等价一个同类型的变量。 3. 一维数组各元素分配在连续地内存单元之中。 1. 须象使用变量那样,数组要先定义,后使用 C编译不检查下标是否“越界”。 例: a [0]5+a[1] 6 为正确的算术表达式
91.5一维数组的应用 例:求 Fibonacci数列 定义数组,并赋初值 intf[20y={1,1} 用循环for实现: for(=2;j<20,i++) fi=f[i-2+f[-1 注意下标越界问题:i=2且j20
9.1.5 一维数组的应用 用循环for实现: for (i=2; i<20; i++) f [i]=f [i –2]+f [i –1]; 例:求Fibonacci 数列。 定义数组,并赋初值 int f [20]={1,1}; 注意:下标越界问题:i =2且i<20
打印:每5个数换一行 for(i=0;i<20,i+) i if (1%05-==0) printf("n") printf("%12d",f[
打印: 每5个数换一行。 for (i=0; i<20; i++) { if (i%5= =0) printf(" \n "); printf (" %12d ", f [i]); }
程序如下: main iint intf[20]={1,1} for(=2;i<20,i++) f[=f[i2]+f[i-1] for(=0;i<20;,i++) if (i%05==0) printf("n") printf( %12d"f[); 3
程序如下: 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("%12d",f [i] );} }