- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七讲_数组
第七讲 数组 主要内容 数组的概念 一维数值数组的定义、初始化及使用方法 二维数值数组的定义、初始化及使用方法 查找法 排序法 数组的概念 假设我们班的班号是A050315,我们班有30名同学,那么对于整个学校来讲,我们班就是一个整体,当学校大扫除时,老师会说A050315班由你们负责打扫第8教室。但是,在具体打扫卫生的时候,并不是整个班的同学们一起擦一块玻璃,扫一块地。而是各有分工的。 例如:学号为1号的张三负责擦一块玻璃,学号为2号的李四负责擦讲桌等等。总之,就是大家整体有一个称呼,但是具体工作的时候,每个人又各尽其职。 其实这种形式就非常类似于我们的一维数组。 再举个例子,如果我们想记录下我们班同学的C语言成绩,然后找出最高分和求出我们班的平均分。如果用我们已经掌握的知识解决这个问题是可以的,但是要设置30个浮点型的变量来完成。定义和使用这些变量就是件非常麻烦的事。这时,可以用数组来解决问题。 可以表示为: float score[30]; /*声明一个浮点型的数组,起名为score,并声明其包含的元素个数为30个,这样就能存储30个学生的分数了*/ 数组是同一类型数据的集合,并拥有共同的名字,叫数组名。 一维数值数组 一维数组的定义方式如下: 数据类型 数组名[常量表达式]; 数组类型:是数组的类型也就是数组中每个数组元素的类型。可以是任何数据类型的,即包括所有的基本数据类型,和指针、结构等其它数据类型。 数组名:数组命名规则与变量相同,在前面的课程中介绍过了。数组名必须是唯一的,不能用作其它数组或标识符(变量、常量等等)的名称。 大小:数组的大小就是指数组的长度,即数组中的元素数。 数组元素存储机制 int array[10]: 数组所需的存储空间 数组所需的存储空间等于该数组的数据类型的长度乘以元素数目。假定本计算机中一个float型的变量占4个字节,那么,包含10个元素的float数组需要的存储空间为10×4=40字节。在程序中要想求数组所需的存储空间就可以利用书前面介绍的运算符sizeof来确定变量所需的存储空间。 声明数组时初始化 声明数组时初始化 先声明再初始化 int array[4]; array[0]=10; array[1]=20; array[2]=30; array[3]=40; 如果希望让用户从键盘录入每个元素,那么同样可以使用scanf()函数,例如:对本数组中第一个元素赋值可以书写为:scanf(“%d”,array[0]);那么当对多个数组元素进行赋值的时候,我们就可以利用for语句来完成了,在输出时同样也同样可以。 数组元素的灵活使用 对于数组元素的使用非常灵活。引用数组元素时,数组下标可以是字面常量,例如: int arr[5]; 也可以是整型变量、表达式,甚至另一个整型数组元素。下面是一些这样的例子: arr[i]=10; /*i 是一个整型变量*/ arr[2+3]=10; /*下标为一个表达式,即为arr[5]*/ arr[b[2]]=10; /* 下标 b[2]是另外一个整型数组中的一个元素,如果b[2]等于9,那么这条语句等价于arr[9]=10*/ 注意:使用数组时,请牢记元素下标的编号方案:在一个包含n个元素的数组中,下标为0到n-1。如果在程序中使用下标n,则可能发生错误。但是C编译器不对程序使用的下标是否超界进行判断,程序将顺利地编译和链接,但下标超界的问题通常会导致最终错误的结果。 一维数值数组的应用 问题描述:某篮球队参加了一次比赛,赛后要对其中1号至10号球员在本场比赛中的表现做如下评比,找出本场中得分最高的球员和得分最低的球员,并分别输出这两个分数。并且要计算出本场这十名球员的总体得分和平均得分情况。请为该球队教练编写出一个小程序完成这项任务。 分析:因为在篮球比赛中得分都是整数,所以,我们可以设置一个整型数组来存放这十名球员的得分。总分只需要设置一个存储和的整型变量,然后把每位球员的分数做累加就可以了,有了总分,求平均分就非常简单了。 解题思路:设定一个变量max (min )存放当前最大(小)元素的下标,首先假定数组中的第一个元素(即下标为0的元素)为最大(小)值,因此先初始化max (min) 为0。然后依次取后面的元素和该下标所对应的元素做比较,如果发现某元素的值比该下标所对应的元素的值大(小),那么我们就记录下该元素的下标,方法就是将该元素的下标存放到max(min)中,这样将所有的元素比较完毕后,max (min) 中一定存放的就是最大(小)元素的下标。 代码 #include stdio.h void main
文档评论(0)