资源描述:
《[高等教育]第6章 利用数组处理批量数据》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章利用数组处理批量数据问题:给一组数排序,这组数该如何存放呢???这些数据如何存放才便于排序82945637617188888888881111111111111118888888888?这便是本章所要解决的问题本章要点掌握一维、二维数组的定义和引用方法、存储结构和初始化方法。掌握有关一维数组的有关算法掌握数组的运算。主要内容6.1怎样定义和引用一维数组6.2怎样定义和引用二维数组6.3字符数组数组的概念:C语言为这些数据,提供了一种构造数据类型:数组。所谓数组就是一组具有相同数据类型的数据的有序集合。由数组名和下标唯一确定数组中的一个元素,数组中的每一个
2、元素都属于同一个数据类型。按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等。一个班学生的学习成绩一行文字一个矩阵这些数据的特点是:1、具有相同的数据类型2、使用过程中需要保留原始数据如果有1000名学生,每个学生有一个成绩,需要求这1000名学生的平均成绩。用s1,s2,s3,……,s1000表示每个学生的成绩,能体现内在联系。C语言用方括号中的数字表示下标,如用s[15]表示。数组名6.1怎样定义和引用一维数组6.1.1怎样定义一维数组6.1.2怎样引用一维数组元素6.1.3一维数组的初始化6.1.4一维数组程序举例6.1.1怎样
3、定义一维数组一维数组是数组中最简单的它的元素只需要用数组名加一个下标,就能惟一确定要使用数组,必须在程序中先定义数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];数组名6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];数组长度6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];10个元素:a[0],a[1],a[2],…,a[9]每个元素的数据类型a[0
4、]a[1]a[2]a[3]…a[7]a[8]a[9]6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];inta[4+6];合法intn=10;inta[n];不合法6.1.1怎样定义一维数组说明:(1)数组名定名规则和变量名相同,遵循标识符定名规则。(2)在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。(3)常量表达式中可以包括常量和符号常量,但不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如:intn;scanf(“%d″,&
5、n);/*在程序中临时输入数组的大小*/inta[n];数组说明中其他常见的错误:①floata[0];/*数组大小为0没有意义*/②intb(2)(3);/*不能使用圆括号*/③intk,a[k];/*不能用变量说明数组大小*/×6.1.2怎样引用一维数组元素在定义数组并对其中各元素赋值后,就可以引用数组中的元素注意:只能引用数组元素而不能一次整体调用整个数组全部元素的值数组元素的引用方式:数组名[下标]下标可以是整型常量或整型表达式。例如:a[0]=a[5]+a[7]-a[2*3]intn=5,a[10];a[n]=20;合法不合法说明:(1)数组必须先定
6、义再使用。且数组的引用只能引用单个元素,不能引用数组整体。例ch[0]=’a’;ch[1]=ch[0];a[0]=a[5]+a[7]-a[2*3];(2)一维数组的输入输出通常用一重循环完成for(i=0;i<10;i++)scanf(“%d”,&a[i]);main(){inti,a[10];for(i=0;i<10;i++)a[i]=2*i+1;for(i=0;i<=9;i++)printf("%d",a[i]);}例:数组元素赋值和输出例6.1对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。解题思路:定义一个长度为10的
7、数组,数组定义为整型。要赋的值是从0到9,可以用循环来赋值。用循环按下标从大到小输出这10个元素。6.1.2怎样引用一维数组元素#includeintmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);printf("");return0;}使a[0]~a[9]的值为0~90123456789a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]#includeintmain(){inti,a[
8、10];for(i=0;i<=9;i+