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

[互联网]第6章数组.ppt

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

6.5.4 二维数组程序举例 【例6.19】 二维数组综合示例程序1,学生成绩处理 要存放多个学生若干门课程的成绩,必须使用二维数组。我们用数组scores 存储学生的4 门课程成绩,其中数组的每一行对应一个学生,每一列表示学生的某门课程成绩。程序中共有4 个函数对数组进行处理:max 函数用于求所有成绩中的最高分;min 函数用于求所有成绩中的最低分;average 函数用于求某个学生4 门课程的平均分;printfArray 函数用于以清晰的表格形式显示学生的原始成绩清单。 max 函数,min 函数和printArray 函数都需要接收三个实参:数组scores(在函数中为数组grades),学生人数(即数组的行数),课程数(即数组的列数)。这三个函数的核心都是用嵌套的for 循环来对数组进行循环处理的。 演示例6. 19 6.5.4 二维数组程序举例 average 函数的功能是计算一行数组元素的总和,然后再用课程的门数去除这个总和,返回一个学生的平均分。average 函数需要接收两个实参:第一个是存储某个学生课程成绩的一维数组lineGrades 的首地址,第二个是数组中所存储的课程门数。调用average 函数时,首先传递的实参是scores[m],这就是把二维数组中某一行的首地址传递给了average 函数。例如:scores[1]就是二维数组中第2 行的首地址。 特别说明: 二维数组就是以一维数组为元素的一个特殊的一维数组。二维数组中的一行就相当于一个一维数组。 对于一维数组而言,其数组名就是它在存储器中的起始地址。 6.5.4 二维数组程序举例 【例6.20】 二维数组综合示例程序2,用冒泡排序法实现若干字符串的升序排列 一维字符数组可以存储一个字符串,但若要存储若干个字符串,则要用到二维字符数组,在二维字符数组的每行中存储一个字符串。一个二维数组可以看作是由多个一维数组组成的,因此一个n×m 的二维数组可以存放n 个字符串,每个字符串的最大长度为m-1,因为还要留下一个字节存放\0。如: char a[4][10]={Spring, Summer, Autumn, Winter }; 各元素的存放结构为: 6.5.4 二维数组程序举例 多个字符串的处理,用二维数组是非常方便的,以行为单位,将一个字符串作为一个整体进行输入、输出及相关的操作,可以大大简化程序,提高程序的可读性及运行效率。 a 数组可以看成是由4 个元素(a[0],a[1],a[2],a[3])组成的一维数组,每个元素又是包含多个元素的一维数组。若要引用其中某一行字符串,直接使用一维数组名即可,因为一维数组名就表示本行的首地址。例如: printf(%s, a[1]); 将从给定的地址开始逐个输出字符,直到遇到第一个\0时结束输出,输出结果为Summer。如果输出改为: printf(%s,a[1]+2); 则输出结果为:mmer,这是因为a[1]表示第2 行的起始地址,a[1]+2 表示a[1][2]。 演示例6. 20 6.6 小结 本章主要介绍了一维数组、二维数组的使用。一维数组、二维数组的定义、初始化以及用下标法访问数组元素是使用数组的基本知识,必须熟练掌握。 本章重点介绍了字符数组和字符串的使用,以及字符串处理函数,为后续的用指针处理字符串打好了基础。对于字符串,通常用字符数组来处理。字符串处理函数包括字符串的输入、输出、复制、拷贝、连接、比较、字母大小写转换等。 数组与函数的关系是本章的重点和难点,详细介绍了用数组元素作为函数参数、数组名作为函数参数的区别和用法。 本章还介绍了两个常用算法:排序和查找。这两个算法是展开大量复杂问题的基础,要求必须掌握。 End * * * * 6.3.3 字符串处理函数 字符串拷贝函数strcpy 拷贝字符串时不允许使用简单的赋值方式。例如,C 语言不允许以下列方式给一个字符数组赋值: char str2[]=string, str1[7]; str1=str2; /*错误*/ 拷贝字符串时,必须将字符一个一个地拷贝,直到遇到\0字符为止,其中\0字符也应该拷贝。 利用strcpy 函数可以很方便地拷贝一个字符串,如将字符数组str2 中存放的字符串拷贝给字符数组str1,调用形式为: strcpy(str1,str2,[n]); 它将str2 字符串(以\0结尾)全部或前n个字符拷贝到str1 字符数组中,最后再加\0。 6.3.3 字符串处理函数 strcat 函数用于连接两个以\0结尾的字符串,其调用形式为: char str1[20]=Happy; char str2[20]= New Year!; strcat(str1,str2); 它将str2 字符串连接到str1

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档