资源描述:
《C语言程序设计能力教程 赵凤芝 等 第6章 数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章利用数组设计程序第一节数组的引入具有相同数据类型的数据的有序集合称为数组。数组a可看作一个向量例如:inta[5];a[0]a[1]a[2]a[3]a[4]定义一维数组a,由5个数组元素构成,每个数组都属于整型数据类型。数组a的各个元素依次是a[0],a[1],…a[4](注意:下标从0~4)。每个数组元素都可以作为单个变量使用。一、数组的概念数组元素:数组中的每一个数组元素具有相同的名称,用不同的下标区分,可以作为单个变量使用,所以也称为下标变量。在定义一个数组后,在内存中使用一片连续的空间依次存放数组的各个元素。数组下标:是数组元素的位置的一个索引或指示。数组维数:数组元素下标的
2、个数。根据数组的维数可以将数组分为一维数组(a[5])、二维数组b[3][4]、三维数组(c[2][3][4])和多维数组。二、数组具有如下特点:1、数组是有序数据的集合;2、数组中的每一个元素都属于同一个数据类型;3、用一个统一的数组名和下标来唯一的确定数组中的元素。第二节一维数组及应用一、一维数组的定义定义格式:类型说明数组名[整型常量表达式]例如:inta[100];定义了一个数组a,元素个数为100,数组元素类型为整型。数组名:命名原则遵循标识符的命名规则。整型常量表达式:表示数组元素个数(数组的长度)。可以是整型常量或符号常量,不允许用变量。类型说明:指的是数据元素的类型,可以是
3、基本类型,也可以是构造类型。类型说明确定了每个数据占用的内存字节数。1.对数组所有元素赋初值,此时数组定义中数组长度可以省略。例如:inta[5]={1,2,3,4,5};或inta[]={1,2,3,4,5};二、一维数组的初始化数组可在定义时初始化(给数组元素赋初值)。数组初始化常见的几种形式:12345a[0]a[1]a[2]a[3]a[4]2.对数组部分元素赋初值,此时数组定义中数组长度不可以省略。例如:inta[5]={1,2};其中:a[0]=1,a[1]=2,其余元素系统指定默认值0。12000a[0]a[1]a[2]a[3]a[4]3.对数组的所有元素赋初值0。例如:int
4、a[5]={0};00000a[0]a[1]a[2]a[3]a[4]main(){inta[10],b[5]={10,20,30,40,50},i;for(i=0;i<10;i++){a[i]=i+1;/*给数组a赋初值*/printf("%4d",a[i]);}/*输出数组a*/printf("");for(i=0;i<5;i++)/*输出数组b*/printf("%4d",b[i]);printf("");}运行程序三、一维数组的应用实例数组元素引用的形式:数组名[下标]【例6.1】数组元素的引用示例。解题步骤:1.输入:使用for循环输入10个整数,放在数组x中,即依次放入x
5、[0],x[1],x[2]……x[9]中。2.处理:(1)先令max=min=x[0],将第一个数默认为初值,max表示最大值,min表示最小值。(2)依次用x[i]和max,min比较(循环),i取值从1~10-1。若maxx[i],令min=x[i]3.输出:max和min。【例6.2】输入10个整数,找出最大值和最小值。定义数组x[10]、变量i=0、max、mini<10输入x[i]的值max=min=x[0]i=1i<10Ymaxx[i]Nmin=x[i]i++输出max和min的值寻找数组中的最大值和
6、最小值N-S图#include#defineSIZE10/*定义字符常量*/main(){intx[SIZE],i,max,min;printf("Pleaseinput10integers:");for(i=0;ix[i])min=x[i];}/*求最小值*/printf("Maximumvalueis%d",max);printf("Minimumvalu
7、eis%d",min);}程序如下:运行程序【例6.3】采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。冒泡法思路:将相邻两个数比较,小的调到前头。排序过程:(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依此类推,直至第n-1个数和第n个数比较为止。第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上。(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被