网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章-数组及期应用-11学时.pptx

  1. 1、本文档共289页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

高级语言程序设计揭安全jieanquan@163.com江西师范大学计算机信息工程学院高级语言程序设计——基于计算思维能力培养

高级语言程序设计——基于计算思维能力培养第6章数组及其应用揭安全jieanquan@163.com江西师范大学计算机信息工程学院

主要内容一维数组向函数传递一维数组基于数组的常用算法一维数组的应用二维数组

主要内容字符串字符数组的初始化字符数组的输入/输出字符串处理函数字符串应用举例

本章思维导图

问题的提出计算机是如何存储批量数据,并对它们进行处理的?

数组具有相同数据类型的集合,特别适合存储和处理批量数据。

一维数组6.1

6.1.1一维数组的定义与引用一维数组的定义:数据类型 数组名[数组大小];可为基本数据类型或构造数据类型与变量命名

规则相同必须为整型常量

表达式

例如:inta[5];定义了5个int型变量,分别用a[0]..a[4]表示,它们在内存占用连续的内存单元。

实际编程时通常定义常量来表示数组的大小,例如:#defineN100inta[N];数组一旦定义,在程序执行期间其位置和大小不能再发生变化。

编程时应根据需要处理的数据规模来定义合适的数组大小。例如,一个年级共有5个班级,每个班级的人数为30~60人不等,如果需要分别对每个班级学生的成绩排序,则程序中定义存储分数的数组大小应按班级的最大人数来确定。

一维数组的引用:C语言采用“数组名[下标]”的方式来引用每个数组元素,对长度为N的数组元素,其下标范围是从0至N-1。C语言的数组名记录了数组在内存中的起始地址,因此数组名为一个常量,即a==a[0]。a[i]可等价地表示为a+i,操作系统是通过计算a+i得到a[i]的地址来访问a[i]的。

一维数组的引用:下标可以是常量或变量或整型表达式,但要保证在有效的数组下标范围内。例如:#defineN10inta[N],i=0;a[2+3]=6; //将a[5]赋值为6a[i++]=10; //将a[0]赋值为10后,i自增1

(1)将数组的每个元素清0的代码为:for(i=0;iN;i++) a[i]=0;(2)从键盘输入每个数组元素值的代码为:for(i=0;iN;i++) scanf(%d,a[i]) //或写成scanf(%d,a+i);

(3)求数组的所有元素之和的代码为:sum=0;for(i=0;iN;i++) sum=sum+a[i];(4)从后向前依次输出数组元素的代码为:for(i=N-1;i=0;i--) printf(%5d,a[i]);

【例6.1】编写程序,输入10个学生的考试分数,求学生的平均分和超过平均分的学生人数。【分析】可以定义大小为10的数组来存放学生的分数,计算学生的平均分,再通过循环统计成绩超过平均分的学生人数。

#includestdio.h#defineN10intmain(){doublea[N],sum=0,ave;inti,counter=0;printf(请输入%d个学生分数:\n,N);for(i=0;iN;i++) //输入分数scanf(%lf,a[i]);

for(i=0;iN;i++) //求和 sum+=a[i];ave=sum/N; //求平均分printf(平均分为:%.2f\n,ave);for(i=0;iN;i++) //统计超过平均分的学生人数if(a[i]ave) counter++;printf(超过平均分的学生人数为:%d人.\n,counter);return0;}

请输入10个学生分数:98786790877687568845↙平均分为:77.20超过平均分的学生人数为:6人.

数组下标越界错inta[10],i;该地址与a[10]相同for(i=0;i=10;i++) a[i]=0;将使程序出现死循环

非法访问内存单元错误将scanf(%d,a[i]);写成scanf(%d,a[i]);

6.1.2一维数组的初始化未指定存储类型的数组默认为auto型数组,与普通的auto变量一样,分配给数组的内存里的数据是不确定的。可通过单步调试观察数组初始值。

6.1.2一维数组的初始化

inta[10]={1,2,3,4,5,6,7,8,9,10};将a[0]~a[9]依次初始化为1~10

文档评论(0)

学海无涯而人有崖 + 关注
实名认证
内容提供者

教师资格证、人力资源管理师持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年06月11日上传了教师资格证、人力资源管理师

1亿VIP精品文档

相关文档