第7聋 数组
第7章数组 本章内容 1.一维数组的定义和引用 2二维数组的定义和引用 3.字符数组
-2- 第7章 数组 本 章 内 容 1. 一维数组的定义和引用 2. 二维数组的定义和引用 3. 字符数组
第7章数组 本章要点 掌握一维、二维数组的定义和引用方法、存储结构和初始化方法 掌握有关一维数组的有关算法 掌握数组的运算 什么是数组 数据类型 基本数据类型:整型、实型、字符型 构造数据类型:数组类型、结构体类型、共用体类型 数组 数组是有序数据的集合。数组中的每一个数据叫做一个元素。 数组中的元素具有相同的数据类型。 ■用一个数组名和下标来唯一的确定数组中的元素
-3- 第7章 数组 本 章 要 点 掌握一维、二维数组的定义和引用方法、存储结构和初始化方法 掌握有关一维数组的有关算法 掌握数组的运算 什么是数组 v 数据类型 基本数据类型:整型、实型、字符型 构造数据类型:数组类型、结构体类型、共用体类型 v 数组 数组是有序数据的集合。数组中的每一个数据叫做一个元素。 数组中的元素具有相同的数据类型。 用一个数组名和下标来唯一的确定数组中的元素
第7章数组 7.1一维数组的定义和引用 维数组的定义 类型说明符数组名[常量表达式]; 例如: a int a[6] a char ch [20] a[2] float b[10] a ☆说明 a[4] 362845 ■数组名的命名。 a[5] ■常量表达式表示元素个数,即数组长度。 常量表达式中可包括常量和符号常量,不能包含变量。即C不 允许对数组的大小作动态定义,如: int n scanf(%d", &n) int aln] error
-4- 第7章 数组 7.1 一维数组的定义和引用 一维数组的定义 类型说明符 数组名[常量表达式]; 例如: int a[6]; char ch[20]; float b[10]; v 说明 数组名的命名。 常量表达式表示元素个数,即数组长度。 常量表达式中可包括常量和符号常量,不能包含变量。即C不 允许对数组的大小作动态定义,如: int n; scanf("%d", &n); int a[n]; //error a[0] 3 a[1] 6 a[2] 2 a[3] 8 a[4] 4 a[5] 5
第7章数组 7.1一维数组的定义和引用 维数组在内存中占一串连续的存储单元 例如: float mark[100]; 低地址|86.5mark[0] 92.0|mark[1 每个数据元素占用 7.5mark[2] 的字节数,就是基 类型的字节数。 52.0mark[3] 个元素占4个字节 高地址94.0|mark[99]
-5- 第7章 数组 7.1 一维数组的定义和引用 v 一维数组在内存中占一串连续的存储单元。 例如: float mark[100]; 每个数据元素占用 的字节数,就是基 类型的字节数。 一个元素占4个字节 低地址 86.5 mark[0] 92.0 mark[1] 77.5 mark[2] 52.0 mark[3] 高地址 94.0 mark[99]
第7章数组 7.1一维数组的定义和引用 维数组的引用 数组必须先定义,后使用。C语言规定只能逐个引用数组元素。 数组元素的表示形式: 数组名[下标 下标:整型常量、整型表达式。 设数组长度为N,下标为i,则:下标下限≤i下标上限。 例如: inta[10],b[10]; b[o]=a[9] //对数组元素赋值 b[1]=a[1*2+3]; 例7.1:数组元素的引用 ma in int i, a[10] for(i=0;i=0; i-) printf("%d", ali])
-6- 第7章 数组 7.1 一维数组的定义和引用 一维数组的引用 数组必须先定义,后使用。C语言规定只能逐个引用数组元素。 v 数组元素的表示形式: 数组名[下标] 下标:整型常量、整型表达式。 设数组长度为N,下标为i,则:下标下限≤i=0; i--) printf("%d ", a[i]); }
第7章数组 7.1一维数组的定义和引用 维数组的初始化 ☆在定义数组时对数组元素赋初值。 例如:inta[5]={2,4,6,8,10}; 可以只给一部分元素赋值。 例如:inta[6]={3,5,7; ☆使一个数组中全部元素值为0,可以写成 inta[6]={0,0,0,0,0,0}; 或inta[6]={0} ◇给全部元素赋初值时,可以不指定数组长度。 例如:inta[]=[1,2,3,4,5}; 系统自动定义a数组的长度为5。 注意区别与inta[10]={1,2,3,4,5};的不同
-7- 第7章 数组 7.1 一维数组的定义和引用 一维数组的初始化 v 在定义数组时对数组元素赋初值。 例如:int a[5] = {2, 4, 6, 8, 10}; v 可以只给一部分元素赋值。 例如:int a[6] = {3, 5, 7}; v 使一个数组中全部元素值为0,可以写成: int a[6] = {0, 0, 0, 0, 0, 0}; 或 int a[6] = {0}; v 给全部元素赋初值时,可以不指定数组长度。 例如:int a[] = {1, 2, 3, 4, 5}; 系统自动定义a数组的长度为5。 注意区别与int a[10] = {1, 2, 3, 4, 5};的不同
第7章数组 7.1一维数组的定义和引用 一维数组程序举例 ☆例7.2:用数组来处理输出 Fibonacci数列。 Fibonacci数列:1,1,2,3,5,8,13,21,34,… 递推关系式:Fn=Fn1+Fn2(n>2) 初始条件:F1=1(n=1)F2=1(n=2) main o inti,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])
-8- 第7章 数组 7.1 一维数组的定义和引用 一维数组程序举例 v 例7.2:用数组来处理输出Fibonacci数列。 Fibonacci数列:1, 1, 2, 3, 5, 8, 13, 21, 34,… 递推关系式:Fn =Fn-1 + Fn-2 (n>2) 初始条件: F1 = 1 (n=1) F2 = 1 (n=2) main() { int i, 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]); } }
第7章数组 7.1一维数组的定义和引用 ◆例7.3:用起泡法对十个数排序(由小到大)。 起泡法:将相邻两个数比较,将小的调到前头 假设有6个数:985420 8 了9 8542 8542 85420 0 T97 第1次第2次第3次第4次第5次结果
-9- 第7章 数组 7.1 一维数组的定义和引用 v 例7.3: 用起泡法对十个数排序(由小到大)。 起泡法:将相邻两个数比较,将小的调到前头。 假设有6个数:9 8 5 4 2 0
第7章数组 7.1一维数组的定义和引用 如果有n个数,则要进行n-1趟比较。在第1趙比较中要进行n-1 次两两比较,在第趟比较中要进行n-j次两两比较。 输入n个数给a[1到a[n] for j=l to n-1 or 1f to n-J alifaaff 真 假 a[i]a[i+1] 输出a[1到a[n] 10
-10- 第7章 数组 7.1 一维数组的定义和引用 如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1 次两两比较,在第j趟比较中要进行n-j次两两比较。 输入n个数给a[1]到a[n] for j=1 to n-1 输出a[1]到a[n] for i=1 to n-j a[i]>a[a+1] a[i]a[i+1] 真 假