- 1、本文档共78页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《语言程序设计》数组
第四章 数 组 4.1 数组的基本概念 数组必须先说明后使用。说明的目的如下: 4.2 一维数组 2. 一维数组的引用 3. 一维数组的存储 4.一维数组的初始化 5.一维数组的应用 例: 4.3 二 维 数 组 ⒈二维数组的说明 ⒊二维数组的初始化 ⒋二维数组元素的引用 5.二维数组的应用 4.4 字 符 数 组 二维数组赋初值 ⒊字符数组的输入输出 ⑴gets( )字符串输入函数 【例4-9】字符输入输出举例 ⒋常用的字符处理函数 ⑵字符串连接函数strcat(str1, str2) ⑷字符串的比较 strcmp(str1,str2) ⑸strlwr(str)将str中的大写字母转换成小写字母。 【例4-10】字符处理函数示例1 【例4-11】从键盘任意输入5个学生的姓名,找出按ASCII码的顺序排在最前面的学生姓名。 例:统计一行文字中大写字母、小写字母及数字的个数。 4.5 数组的应用举例 ⒈求极值及其位置 ⑵二维数组求极值 ⒉查 找 标志设置框图 顺序查找程序 ⑵折半查找——适用于在有序数组中查找 算法的效率 折半查找程序 ⒊ 排 序 冒泡排序程序如下: 思考题 ⑶选择排序 选择排序程序 4. 倒序 4.6 算法与效率 1.算法所耗费的时间 2.算法所耗费的空间 3.算法的可读性、可调性、可维护性 ⒈升序的条件如何构造? ⒉联合排序问题 已知一个班有36个同学,a数组存放一门课的成绩,m数组存放 其学号。要求将成绩从大到小排序。 提示:应考虑的问题是当a数组元素比较交换时,m数组如何处 理? a[ 5 ] 89.5 m[ 5 ] 1005 a[ 7 ] 90.0 m[ 7 ] 1007 被动排序方。 冒泡排序在内层循环的比较中,满足条件的每次都需要交换。 其中一些交换是无效的,交换算法会占用系统时间,从而降低算法 效率。 选择排序算法的基本思路,每轮排序将a[ i ]假定为极值,每次 在a[ i ]到 a[MAX]中找出个极值,记录其位置,最后让极值位置的 元素与a[ i ]交换。 选择排序保证每轮排序只有一次交换,且为有效的交换! 选择排序算法演示 #include stdio.h void main(void) { int i, j,iMax,a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp; for(i=0; i9 ;i++) { iMax=i; for( j=i+1;j10;j++) if(a[iMax]a[j])iMax=j; if(iMax!=i) { iTemp=a[i]; a[i]=a[iMax]; a[iMax]=iTemp;} } for(i=0;i10; i++) printf(”%4d”,a[i]); } 排序循环 假定最大值位置。 循环比较找出最大值的位置。 与本次比较的第一个元素交换。 chp4ex6 升序如何构造? /* example 4-19 选择排序 */ #includestdio.h void main(void) { int i,j,k; float math[10],temp; printf(please enter:); for(i=0;i10;i++) /* 循环 */ scanf(%f,math[i]); /* 输入成绩 */ for(i=0;i9;i++) /* 外循环负责趟数 */ { k = i; /* 设最小数位置 */ for(j=i+1;j10;j++) /* 内循环负责比较 */ { if(math[k]
文档评论(0)