资源描述:
《C语言 第六章 数组》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第六章数组第六章数组本章主要内容:6.1数组概述6.2一维数组6.3二维数组6.4用字符数组处理字符串6.5综合应用举例本章作业本章重点:熟练掌握一组数组和字符数组的定义和引用,掌握用数组方法实现排序算法、查找方法;深刻理解一维的字符数组与字符串之间的关系,并比较熟练地掌握使用一维字符数组来处理字符串。《C语言程序设计》6.1数组概述在许多数学问题中,经常遇到数列和矩阵的概念。数列和矩阵是用来描述一批数据之间的关系的。如:表示x数列时通常写成:x1,x2,x3,……,xn表示一个2×3矩阵y可以写成:数组位置号行号
2、列号《C语言程序设计》分析数列和矩阵不难发现它们有三个特点:有一批数据;这些数据之间有一定的内在联系;这些数据的类型相同。C语言中用数组来表达数列和矩阵。数组名数列名(如x数列)矩阵名(如y矩阵)下标用一个数表示下标用两个数表示一维数组二维数组x2y13x[2]y[1][3]数组《C语言程序设计》不用数组时,要处理下面的两个问题你会感到相当困难:将输入的50个数逆序输出。把输入的30个成绩中高于平均分的成绩输出。所谓数组是指一组有序数据的集合,用一个统一数组名标识这一组数据,用下标来指示数组中元素的位置(序号)。数
3、组是最简单的一种构造类型,其数组元素为同一类型,既可以为简单类型(如整型、实型、字符型等),也可以是构造类型。数组《C语言程序设计》6.2一维数组一维数组的定义语法格式为:类型符数组名[元素个数];例如:inta[5];定义了一个数组a,每个元素的类型为int,可以称a为整型数组。它有5个元素:a[0]a[1]a[2]a[3]a[4]又如:floatx[2*5];/*Ok*/chars[n];/*Error*/数组常量或常量表达式第一个元素的下标为0第后一个元素的下标为元素个数-1《C语言程序设计》一维数组的引用一
4、般的引用格式为:数组名[下标]如:n=4;a[0]=3*a[3]-a[n-2];数组元素实际上的一种带下标的变量(简称下标变量),它与简单变量(不带下标的变量)在使用上并无不同。请比较:intm,n,p,a[5];m=10;a[2]=5;n=2*m;a[1]=a[2]*3;scanf(“%d”,&p);scanf(“%d”,&a[4]);数组可以为常量、变量、表达式《C语言程序设计》引用数组元素更常用的形式:a[i]若i=0,a[i]→a[0]若i=1,a[i]→a[1]用这种方式可以访问数组中的所有元素,这称为数
5、组的“遍历”。遍历数组时是通过循环来改变下标的。[例6.1]将输入的5个数逆序输出。读入:for(i=0;i<5;i++)scanf(“%d”,&a[i]);输出:for(i=4;i>=0;i--)printf(“%3d”,a[i]);数组《C语言程序设计》一维数组的初始化在定义数组时给元素赋初值。一般语法为:类型符数组名[元素个数]={常量表};如:inta[5]={1,2,3,4,5};编译系统为数组的所有元素顺序分配存储单元。初始化时是把常量表中的常量按内存分配顺序依次存入相应的数组元素。数组12345《C语
6、言程序设计》说明:若给所有元素赋初值,“元素个数”可以省略。如:inta[]={1,2,3,4,5};可以只给一部分元素赋初值,但元素个数不能省略。未被赋初值的元素则为0。如:inta[5]={1,2,3};若使全部元素都为0,可以将其定义为“全局变量”或“静态变量”,也可以写成:inta[5]={0};若数组在定义时未进行初始化,则各元素的值是随机的。如:inta[5];数组5,0,0};,0,0,0,0};={?,?,?,?,?};《C语言程序设计》一维数组的程序举例[例6.2]求输入的10个数据之和。main
7、(){inta[10],sum=0,i;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)sum=sum+a[i];printf(“Sum=%d”,sum);}练习:把输入的30个成绩中高于平均分的输出数组输入数据计算、处理输出数据《C语言程序设计》[例6.3]找出输入的5个数据中的最大值及所在位置。分析:设a[0]的值最大;i=1;i<5时,比较a[i]与max:若a[i]>max,则a[i]→max,i→pi++;思考:1、不使用max变量而使程序完成同
8、样的功能。2、把找到的最大值与第一个数据互换位置。数组52796012345amaxip579maxpBack《C语言程序设计》[例6.4]输出Fibonacci数列的前20项,每行5个数据。分析:fab[0]=fab[1]=1;使n=2~19fab[n]=fab[n-1]+fab[n-2];数组《C语言程序设计》6.3二维数组二维数组的定义一般形式为:类型