《C语言程序设计与数据结构》课件第07章.ppt
文本预览下载声明
C语言程序设计与数据结构 第7章 数组 要求: 掌握一维数组的定义及应用; 掌握二维数组的的定义及应用应用; 掌握字符数组及字符串处理函数的应用; 掌握数组在函数中的应用及常用的查找、排序方法。 重点: 一维数组及二维数组的应用; 数组在函数中的应用及常用的排序方法。 主要内容 7.1 一维数组 7.2 二维数组 7.3 字符数组 7.4 数组在函数中的应用 7.5 折半查找 7.6 数组元素排序 7.7 典型习题分析解答 7.1 一维数组 7.1.1 一维数组的定义与初始化 7.1.1.1 一维数组的定义 一维数组的定义格式为: 类型说明符 数组名 [常量表达式]; 说明: (1) 数组的类型指数组元素的取值类型。对于上例,即说明该数组a中的10个元素都是整型。 (2) 数组名必须是合法标识符,也就是说必须符合标识符的命名规则; (3) 数组名不能与同一程序中的其它变量同名; (4) 若用方括号中的整数n来表示数组元素的总数,则数组的第一个元素的下标为0(称为数组下标的下界),最后一个为n-1(称为数组下标的上界)。对于上例,数组中含有10个元素,分别是:a[0],a[1],a[2],……,a[9]。 (5) 不能在方括号中用变量来表示元素的个数。 (6) 允许在同一个说明中,说明相同类型的多个数组和多个变量。 (7) 可以使用在编译预处理#define中定义的符号常量。 7.1.1.2 一维数组的初始化 初始化赋值的一般形式为: 类型说明符 数组名[常量表达式]={值,值……值}; 其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。 例如: int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 说明: (1)可以只给部分元素赋初值。 当{ }中值的个数少于元素个数时,只给前面部分元素赋值。 例如: int a[10]={0,1,2,3,4}; 表示只给a[0]~a[4]这5个元素赋值,而后5个元素自动赋0值。 (2)能给元素逐个赋值,但不能给数组整体赋值。 例如给十个元素全部赋1值,只能写为: int a[10]={1,1,1,1,1,1,1,1,1,1}; 而不能写为: int a[10]=1; (3)如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。 例如: int a[5]={1,2,3,4,5}; 可写为: int a[]={1,2,3,4,5}; 7.1.2 一维数组元素的引用 数组元素引用的一般形式为: 数组名[下标] 其中的下标只能为整型常量或整型表达式。如果为小数时,C编译将自动取整。例如,a[6],b[i+j],b[i++]都是合法的数组元素。 数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。例如,单独使用一个下标变量: int a[10]; a[7]=6; 7.1.3 一维数组元素的赋值 数组定义之后,如果不对其进行初始化,则其值可通过赋值语句获 或者可从键盘、文件等读取获得。现以从键盘接收数据为例: 【例7.1】从键盘输入十个数据给数组a赋值,然后把数组a的值复制到数组b中。 main( ) { int a[10],b[10],i; for(i=0;i10;i++) scanf( %d,a[i]); for(i=0;i10;i++) b[i]=a[i]; for(i=0;i10;i++) printf(%d,b[i]); } 7.1.4 顺序查找 顺序查找即为从数组的一端开始,逐个进行数组元素的值和给定值x的比较,若某个元素的值和给定值x相等,则查找成功;反之,若直至最后一个数组元素,其值和给定值x都不相等,则表明数组中没有所查的数据,查找不成功。 【例7.2】已知存放在a数组中的数据两两不相同,在a数组中查找和x值相同的元素的位置。若找到,输出该值和其在a数组中的位置;若没找到,输出相应的提示信息。 #define N 100 main()
显示全部