《C语言程序设计案例教程(第二版)》第6章数组.pptx
文本预览下载声明
学习目标案例目标 了解C语言对批量数据的存储和处理方法 掌握一维数组的定义、初始化和引用方法 熟练地使用数组进行程序设计,解决实际问题学习目标学习目标 掌握一维数组的定义、初始化和引用方法 掌握二维数组的定义、初始化和引用方法 理解字符数组与字符串的区别,掌握它们的使用方法 较熟练地使用数组进行程序设计,解决实际问题案例6 十个小孩分糖【问题描述】十个小孩围成一个圈分糖果,张老师随意地分给每个小孩几块糖果。然后要求所有的小孩同时将自己手中的糖果分一半给右边的小孩;当糖果块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖果块数都一样?且每人各有多少块糖?程序运行效果如图6-1所示。图6-1 分糖的调整过程案例6 十个小孩分糖【问题分析】问题描述的分糖过程是一个机械的重复过程,编程算法完全可以按照描述的过程进行模拟。但如果按照前面学过的知识就需要10个简单变量来存储小孩手中的糖果数,每次调整糖果就要对10个变量操作非常复杂,这显然不合理的。必须引入数组存储数据。【知识准备】在解决实际问题中,常常需要处理同类型的大批数据,例如,对某班学生成绩进行排序就是这种情况。这类问题,就算法而言是十分简单的,但如果每个学生每门课程的成绩用一个简单变量来保存,就需要很多变量,解决起来将十分繁琐,给程序设计带来极大不便。本案例如果用10个简单变量存储小孩的糖果数,每次调整糖果数的操作就非常复杂,这显然不合理。所以,必须引入一种新的数据结构——用数组来存储批量数据。6.1 一维数组6.1.1 一维数组的定义一维数组的定义格式为: 类型标识符 数组名[常量表达式];其中: 类型标识符: 表示数组中所有元素的数据类型。数组名: 就是这个数组型变量的名称。常量表达式: 指出一维数组中元素的个数,即数组长度。6.1 一维数组6.1.1 一维数组的定义一维数组的定义格式为: 类型标识符 数组名[常量表达式];其中: 类型标识符: 表示数组中所有元素的数据类型。数组名: 就是这个数组型变量的名称。常量表达式: 指出一维数组中元素的个数,即数组长度。6.1.2 一维数组的引用数组定义后,就可以引用数组中的任意一个元素了,引用形式如下: 数组名[下标表达式]6.1 一维数组【例6.1】 随机输入10个整数存储在数组中,然后将数组元素输出。【编程要点】(1)定义有10个元素的一维数组;(2)输入10个数, 存储到数组元素中;(3)将数组元素逐个输出。6.1 一维数组6.1.3 一维数组的初始化与简单变量一样,数组也可以在定义时初始化。一维数组初始化的一般格式如下: 类型说明符 数组名[常量表达式] = {初值表};对一维数组的初始化,有以下几种形式:(1) 在定义数组时直接对数组的全部元素赋初值例如: int iA1[6]={0,1,2,3,4,5};将数组元素的初值依次放在一对花括号“{}”内,并用逗号“,”分开,从左到右将花括号中的每个数与数组的每个元素一一对应,经过上面的定义和初始化之后,数组中的各元素值为:iA1[0] = 0、iA1[1]=1、iA1[2]=2、iA1[3]=3、iA1[4]=4、iA1[5]=5。6.1 一维数组【例6.2】 初始化一维数组。本实例中,对定义的数组变量进行初始化操作,然后隔位输出。运行程序,显示效果如图6-3所示。图6-3 初始化一维数组6.1 一维数组【例6.2】 初始化一维数组。【实现代码】#include stdio.hvoid main(){ int i; int iArray[10] = {100,92,91,88,78,69,60,55,48,99};//对数组元素赋初值 for(i=0;i10;i += 2) //隔位输出数组中元素 printf(%5d,iArray[i]); //每个数占5个字符位且右对齐 printf(\n);} 6.1 一维数组(2) 只给部分元素赋初值,未赋初值的部分元素值为0例如: int iA2[6]= {10,23,9}; 这样只对前3个元素显式赋初值,后3个元素值自动设为0。(3) 对数组全部元素赋初值时,可以不指定数组长度例如: int iA3[ ]= {0,1,2,3,4,5};等价于 int iA3[6]= {0,1,2,3,4,5};6.2 二维数组6.2.1 二维数组的定义二维数组的定义格式为: 类型标识符 数组名[常量表达式1] [常量表达式2];其中: 常量表达式1: 表示数组的行数。常量表达式2: 表示数组的列数。6.2 二维数组6.2.2 二维数组的引用二维数组元素的引用形式为: 数组名[行下标][列下标]例如:int a[3][4];第一个行下标的范围为0~2,而第二个列下标的范围为0~3。例如:a[1][3
显示全部