




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10讲一维数组与字符数组 请大家利用放假期间及时消化我讲的内容 并举一反三 模仿未讲过的例题多写程序 如果说学习C语言有捷径的话 那就是多读程序 多写程序 2 例 求60个学生的最高分 算法 输入60个学生的成绩依次比较 找出最高分输入最高分 3 方法一 include defineN60voidmain inta N max printf Input dscore n N for i 0 imax max a i printf nThemaximumscoreis d n max 4 方法二 include defineN60voidmain inta N max i printf Input dscore n N for i 0 ia max i max i i 求最大元素对应的下标 printf nThemaximumscoreis d n a max i 5 例6 1对200个学生成绩从大到小排序 算法输入200个成绩排序输入排序结果 6 冒泡法对N个数从大到小排序 第0趟排序 比较a 0 和a 1 不满足顺序交换 再比较a 1 和a 2 不满足顺序交换 依此类推 直至a N 2 和a N 1 比较 不满足顺序交换 通过这一趟的两两比较找到第1个最小的数放在a N 1 的位置 第J趟排序 比较a 0 和a 1 不满足顺序交换 再比较a 1 和a 2 不满足顺序交换 依此类推 直至a N j 2 和a N j 1 比较 不满足顺序交换 通过这一趟的两两比较找到第j 1个最小的数放在a N j 1 的位置共N 1趟 for j 0 j N 2 j 第j趟排序 通过依次比较a I 和a I 1 不满足顺序交换 for i 0 i N j 2 i if a i a i 1 t a i a i a i 1 a i 1 t 7 include defineN200voidmain inta N i j t printf Input dscore n N for i 0 ia i 1 若从小到大排序 改成 t a i a i a i 1 a i 1 t printf nThesortedscore n for i 0 i N 1 i if i 15 0 printf n printf 4d a i 书中P167的源代码改为for i 0 i N j 2 i 例6 1完整程序 冒泡法 8 选择法对N个数从大到小排序 第0趟排序 从a 0 至a N 1 比较找出其中最大数所在的下标k 若k 0 说明a k 比a 0 大 则交换a 0 和a k 通过这一趟的比较找到第1个最大的数放在a 0 的位置 第J趟排序 从a j 至a N 1 比较找出其中最大数所在的下标k 若k j 说明a k 比a j 大 则交换a j 和a k 通过这一趟的比较找到第j 1个最大的数放在a j 的位置共N 1趟 for j 0 j N 2 j 第j趟排序 通过这一趟排序 找到第j 1大的数存于a j 从a j 至a N 比较找出其中最大数所在的下标k 若k j 说明a k 比a j 大 则交换a j 和a k k j for i j 1 ia k k i if k j t a k a k a j a j t 9 include defineN200voidmain inta N i j t printf Input dscore n N for i 0 ia k 若从小到大排序 改成 k i if k j t a k a k a j a j t printf nThesortedscore n for i 0 i N 1 i if i 15 0 printf n printf 4d a i 例6 1完整程序 选择法 10 查找算法 顺序查找 按数组下标顺序查找二分法查找 折半查找 我们查字典的时候怎样查找 在已经排好序的情况下可以进行二分查找 过程 先找到查找区域的中点 如果中间比要找的值小 说明要找的值在右半边 反之 在左半边 相等则表示找到 若没有找到 在新的查找区域 继续这样查找 直至所有的区域都找到 11 二分法程序 include defineN200voidmain inta N left right mid x find i 1 low 0 high n 1 Printf pleaseinputthenumbertosearch scanf d 12 思考 当数组里存储的是字符串时该怎样修改前边例题的程序 将前边的n或N一律改成strlen a 因为字符数组中字符的个数绝不是定义时规定的数组长度 其具体个数要通过上述库函数求得 13 与字符串相关的库函数 在中定义了若干专门的字符串处理函数strlen strlen 字符串 返回字符串的实际长度 即不包括 0 的实际字符个数strcpy strcpy 目的字符串 源字符串 strcat strcat 目的字符串 源字符串 strcmp strcmp 字符串1 字符串2 当出现第一对不相等的字符时 就由这两个字符决定所在字符串的大小返回其ASCII码比较的结果值 作业1 P178还有两个函数 请自学 14 错误2 if str1 str2 最容易出现的错误 错误1 str1 str2 字符串不能直接整体复制 strcpy str1 str2 正确 也不能用关系运算符比较大小if strcmp str1 str2 0 正确 写错也不会提示语法错误 为什么 15 求三个字符串中最大的一个 算法 输入字符串str1 str2 str3比较str1和str2 将最大值赋给strmax再拿strmax和str3进行比较 若str3大 再将str3赋值给strmax 输出strmax 16 include include defineN50main charstr1 N str2 N str3 N strmax N printf Pleaseenterthreestrings n gets str1 gets str2 gets str3 gets max 输入三个字符串 if strcmp str1 str2 0 求前两个字符串的最大值strmax strcpy strmax str1 if strcmp str3 strmax 0 求strmax和str3的最大值 strcpy strmax str3 printf Themaxis puts strmax 程序 17 例6 7判断回文数 例 123454321是回文数再例 12345321不是回文数算法 str 18 include includevoidmain inti j equal 1 charstr 20 printf Inputastring scanf s str for i 0 j strlen str 1 i 例6 7程序 19 本讲小结 一维数组的相关程序设计求最大值 排序 查找等注意数值数组与字符数组的区别几个用于字符串处理的库函数 字符数组的编程题目是经常考的 下节课讲数组名作函数参数 请提前预习 20 思考题与作业 思考题 如何将我们写的这些程序分别写成函数 这些函数又将如何调用 作业 用数组实现统计全班学生C语言成绩的总分和平均分 仿照例6 6的程序实现strlen strcat strcmp 三个程序的功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津高考理科数学真题
- 中药材种植员技能操作考核试卷及答案
- 三年级信息技术上册 第9课 键盘打字说课稿2 (新版)苏科版
- 节假日值班人员职责与注意事项
- 绒线编织工入职考核试卷及答案
- 互联网金融风险识别与管控
- 综合复习与测试教学设计-2025-2026学年初中数学北京版七年级上册-北京版2013
- 小学生心理健康成长故事教学
- 油罐车蒸罐与洗罐安全操作规程详解
- 钟表设计师转正考核试卷及答案
- 医院感染管理制度与职责
- 中建盘扣式落地卸料平台施工方案
- 管理学(第二版)邢以群PPT全套课件
- 四川省安全评价收费标准
- 人工流产-清宫术知情同意书
- 人工智能+智能运维平台解决方案
- 会计师事务所薪酬制度探讨
- 仁爱版|九年级上册所有重点单词、短语和句型全汇总
- 人教版七年级英语全册导学案整理版
- 义务教育英语课程标准2022年英文版
- 高压脉冲轨道电路
评论
0/150
提交评论