第5章数组 第5章数组 5,1一维数组的定义和引用 5.2二维数组的定义和使用 5.3字符数组与字符串 5,4程序举例 Ba
第5章 数组 第5章 数组 5.1一维数组的定义和引用 5.2 二维数组的定义和使用 5.3 字符数组与字符串 5.4 程序举例
第5章数组 51—维数组的定义和引用 5.1.1一维数组的定义 维数组定义的一般形式为 类型说明符数组名[整型常量表达式]; 其中,类型说明符指数组中每个元素的类型。数组名是一个标识 符,和普通变量命名规则一样,它代表了数组中第一个元素的地 址。整型常量表达式表示数组元素的个数,即数组长度。 例如语句 Ba
第5章 数组 5.1一维数组的定义和引用 5.1.1一维数组的定义 一维数组定义的一般形式为: 类型说明符 数组名[整型常量表达式]; 其中,类型说明符指数组中每个元素的类型。数组名是一个标识 符,和普通变量命名规则一样,它代表了数组中第一个元素的地 址。整型常量表达式表示数组元素的个数,即数组长度。 例如语句
第5章数组 ++define m 20 int a g float b[ 9 char chMI 定义a是有8个整型元素的数组,b是有9个单精度型元素 的数组,ch是有20个字符型元素的数组 说明: (1)数组名后为下标运算符[]而不是圆括号()。下 面用法不对: ta(10) (2)整型常量表达式可以包括普通常量和符号常量 Ba
第5章 数组 #define M 20 int a[8]; float b[9]; char ch[M]; 定义a是有8个整型元素的数组,b是有9个单精度型元素 的数组,ch是有20个字符型元素的数组。 说明: (1)数组名后为下标运算符[ ]而不是圆括号( )。下 面用法不对: int a(10); (2)整型常量表达式可以包括普通常量和符号常量
第5章数组 不能包含变量。也就是说,C不允许对数组的大 小作动态定义,即数组的大小不依赖于程序运 过程中变量的值。例如,下面这样定义数组 是不行的: in t m scanf( %d", &m) nt alm Ba
第5章 数组 不能包含变量。也就是说,C不允许对数组的大 小作动态定义,即数组的大小不依赖于程序运 行过程中变量的值。例如,下面这样定义数组 是不行的: int m; scanf("%d",&m); int a[m];
第5章数组 5.1.2一维数组的引用 数组必须先定义,然后使用。C语言规定只能逐个引用数 组元素而不能一次引用整个数组 引用数组元素的一般形式为: 数组名[下标] 下标必须从0开始,可以是整型常量或整型表达式 下标是数组元素到数组开始的偏移量。第1个元素的偏移 量是0,第2个元素的偏移量是1,依次类推。由此,数组 是一系列大小相同的连续项,每项到公共基点的偏移量 是固定的。 例如inta[5] Back
第5章 数组 5.1.2一维数组的引用 数组必须先定义,然后使用。C语言规定只能逐个引用数 组元素而不能一次引用整个数组。 引用数组元素的一般形式为: 数组名[下标] 下标必须从0开始,可以是整型常量或整型表达式。 下标是数组元素到数组开始的偏移量。第1个元素的偏移 量是0,第2个元素的偏移量是1,依次类推。由此,数组 是一系列大小相同的连续项,每项到公共基点的偏移量 是固定的。 例如 int a[5];
第5章数组 定义a是有5个元素的数组,对它们的引用分别是a[0], a[l],a[2],a[3],a[4]。注意不能使用数组元素 a[5]。 【例5.1】数组元素的应用 main int a[10] for(i=0;i=0;i-) printf %d,aliD; Ba
第5章 数组 定义a是有5个元素的数组,对它们的引用分别是a[0], a[1],a[2],a[3],a[4]。注意不能使用数组元素 a[5]。 【例5.1】 数组元素的应用 main( ) { int i, a[10]; for(i=0;i=0;i--) printf("%d ",a[i]);}
第5章数组 程序运行结果为: 181614121086420 程序使a[0]到a[9的值为0~18,然后按逆序输出 5.1.3一维数组的初始化 对数组元素的初始化可以用以下方法实现 (1)在定义数组时对数组元素赋初值。例如: inta[6]={0,1,2,3,4,5}; 将数组元素的初值依次放在一对花括弧内。经过上面 的定义和初始化之后,a[0]=0,a[1]= a[2]=2,a[3]=3,a[4]=4,a[5]=5。 Ba
第5章 数组 程序运行结果为: 18 16 14 12 10 8 6 4 2 0 程序使a[0]到a[9]的值为0~18,然后按逆序输出。 5.1.3一维数组的初始化 对数组元素的初始化可以用以下方法实现: (1) 在定义数组时对数组元素赋初值。例如: int a[6]={0,1,2,3,4,5}; 将数组元素的初值依次放在一对花括弧内。经过上面 的 定 义 和 初 始 化 之 后 , a[0]=0,a[1]=1, a[2]=2,a[3]=3,a[4]=4,a[5]=5
第5章数组 (2)可以只给一部分元素赋值。例如 inta[7]={1,2,3}; 定义a数组有7个元素,但花括弧内只提供3个初值。这 表示只给前3个元素赋初值,后4个元素全为0。 (3)用循环语句对数组赋值。例如: int a5 for(i=0;i<5;i++) a[i]=2*i+1 定义a数组有5个元素,用循环语句赋值后, a[0]=1,a[1]=3,a[2]=5,a[3]=7,a[4]=9。 4)在对所有数组元素赋初值时,可以不指定数组 Back
第5章 数组 (2) 可以只给一部分元素赋值。例如: int a[7]={1,2,3}; 定义a数组有7个元素,但花括弧内只提供3个初值。这 表示只给前3个元素赋初值,后4个元素全为0。 (3) 用循环语句对数组赋值。例如: int a[5]; for(i=0;i<5;i++) a[i]=2*i+1; 定 义 a 数组有 5 个元素 , 用循环语句赋值后 , a[0]=1,a[1]=3,a[2]=5,a[3]=7,a[4]=9。 (4) 在对所有数组元素赋初值时,可以不指定数组
第5章数组 长度。例如: inta[8]={1,2,3,4,5,6,7,8} 可以写成 inta[]={1,2,3,4,5,6,7,8} 在第二种写法中,花括弧内有8个数,系统就会 据此自动定义a数组的长度为8 【例5.2】用冒泡排序法对10个数排序(从小到 大) 分析:假设有N个数据需要排序 Ba
第5章 数组 长度。例如: int a[8]={1,2,3,4,5,6,7,8}; 可以写成 int a[ ]={1,2,3,4,5,6,7,8}; 在第二种写法中,花括弧内有8个数,系统就会 据此自动定义a数组的长度为8。 【例5.2】用冒泡排序法对10个数排序(从小到 大) 分析:假设有N个数据需要排序
第5章数组 1)首先比较第一个数和第二个数,如果第一个数大于第 二个数,交换两数;然后比较第二个数和第三个数,如 果第二个数大于第三个数,交换两数;依此类推,直到 第N-1个数与第N个数比较、交换为止。如此经过一趟排 序,使得最大的数被放到最后。 2)对前面N-1个数重复以上过程,则次大数被放在第N-1 位置上 3)重复以上过程,直到前面只剩下1个数据为止。这时 已确定N-1个数据位于其最终位置,显然就是N个数据已 排序 Ba
第5章 数组 1)首先比较第一个数和第二个数,如果第一个数大于第 二个数,交换两数;然后比较第二个数和第三个数,如 果第二个数大于第三个数,交换两数;依此类推,直到 第N-1个数与第N个数比较、交换为止。如此经过一趟排 序,使得最大的数被放到最后。 2)对前面N-1个数重复以上过程,则次大数被放在第N-1 位置上。 3)重复以上过程,直到前面只剩下1个数据为止。这时, 已确定N-1个数据位于其最终位置,显然就是N个数据已 排序