C程序设计教程(第3版中国高等院校计算机基础教育课程体系规划教材)
作者简介
内容简介
第5章 利用数组处理批量数据 接标题2接正文5.1数组的作用 迄今为止,本书前几章使用的都是属于基本类型(整型、字符型、实型)的数据,它们都是简单的数据类型。对于少量的数据,用以上简单的数据类型处理就可以了,但对数量较大的数据,使用简单的数据类型来处理就不太方便了。例如,一个班有30个学生,要分别输入和输出各人的姓名、年龄、成绩等数据,就要定义大量的变量名(如用s1~s30代表30名学生的学号,age1~age30代表30个学生年龄等),不仅烦琐,而且这些变量都是孤立的,互无关联,反映不出这些数据的特性(都是同一批学生的学号),难以对它们进行有效快捷的操作。 为了处理这类问题,人们把同一类性质的数据(如学生的学号),用同一个名字(如s)来代表它们,在名字右下角加下标来表示是哪一个学生的数据,如用s1,s2,s3,…,s30, 代表30个学生的成绩。这样,这些数据就不是零散的、互不相关的数据,而是一组具有同一属性的数据,这一组数据就成为一个数组(array),s是数组名,下标代表学生的序号。s15代表第15个学生的成绩。 由此可知: (1) 数组是一组有序数据的集合。数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。 (2) 用一个数组名(如s)和下标(如15)来唯一地确定数组中的元素,如s15就代表第15个学生的学号。 (3) 数组中的每一个元素都属于同一个数据类型。不能把不同类型的数据(如学生的成绩和学生的性别)放在同一个数组中。 在C程序中常根据需要定义数组,并且用循环来对数组中的元素进行操作,可以有效地处理大批量的数据,大大提高了工作效率,十分方便。本章将介绍怎样定义和使用数组。5.2怎样定义和引用一维数组 一维数组是最简单的数组,数组元素只有一个下标,用一个数组名和一个下标就能唯一地确定一个数据对象(如用s15代表序号为15的学生)。除了一维数组以外,还有二维数组(它的元素有两个下标,需要用一个数组名和两个下标才能唯一地确定一个数据对象(如用s2,3代表第2组第3名学生),还有三维数组(它的元素有三个下标,如用s1,2,4代表第1班第2组第4名学生)和多维数组(它的元素有多个下标)。它们的概念和用法是相似的。本节先介绍一维数组。 5.2.1怎样定义一维数组 数组必须先定义后使用,这和定义变量是一样的,计算机不会自动地把一组数据组合成为一个数组。程序设计者必须指定把一批有关联的数据定义为一个数组,指定数组名、数组中包含数据的个数以及数据的类型。由于用C语言的字符无法表示上下角,C规定用方括号中的数字来表示下标,如用s\[15\]表示s15,即s数组中第15个学生的学号。 例如: int a\[10\]; 表示定义了一个整型数组,数组名为a,此数组有10个元素。 定义一维数组的一般形式为 类型符 数组名[常量表达式]; 说明: (1) 数组名的命名规则和变量名相同,遵循标识符命名规则。 (2) 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。例如,定义a\[10\],表示a数组有10个元素。注意,下标是从0开始的,这10个元素是: a\[0\],a\[1\],a\[2\],a\[3\],a\[4\],a\[5\],a\[6\],a\[7\],a\[8\],a\[9\]。请特别注意,按上面的定义,不存在数组元素a\[10\]。 (3) 上面“常量表达式”中可以包括常量和符号常量,不能包含变量。在主函数中不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不对的: int n; scanf("%d",&n);//企图在程序中临时输入数组的大小n int a\[n\];除了main函数之外,在其他函数中允许对数组的大小作动态定义,详见第6章。 "本书为普通高等教育“十一五”国家级规划教材,荣获全国高校出版社优秀畅销书一等奖。本书作者具有丰富的教学经验和编写教材的经验,善于把复杂的问题简单化,化解了学生学习过程中的许多困难。作者所著的《C程序设计》一书受到专家和读者的一致好评,公认为是学习C程序设计的理想教材,被全国大多数高校选用,是学习C语言的主流用书,已累计发行逾1400万册,创同类书籍发行量的最高纪录。 根据国内一般大学非计算机专业的教学需要,作者在《C程序设计》一书的基础上重新改写并出版了《C程序设计教程》,适当减少内容,紧扣基本要求,突出重点,适合“少学时”的需要。根据近年来的教学实践,本书重新构建教材体系,进一步压缩内容,突出重点,加强算法训练,更加实用。用通俗易懂的方法和语言阐明复杂的概念,使读者更加容易学习。同时采取适当的方法,注意培养包括计算思维在内的科学思维。 本书可用作全国高等学校各专业的正式教材,尤其适合一般院校的非计算机专业使用,同时也是一本供广大读者自学的好教材。本书还配有辅助教材《C程序设计教程(第3版)学习辅导》。 "