- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
批量数据处理数组程序设计()9
高级语言程序设计 第6章 批量数据处理—数组程序设计(2) 问题3 在成绩单中查找某人的成绩 问题描述:问题2已经建立了有3门课程的成绩单(学号(假设学号在1到100之间,不一定连续) 、数学成绩、英语成绩、计算机成绩和总分)中,现在按照学号查找某人的成绩信息。 样例输入1 30 输出样例1 70 80 90 240 样例输入2 150 输出样例2 not found 分析 假设3门课程的成绩单已经存储在数组 int num[60 ], grade[60][3], total[ 60]中 我们的问题是用户输入一个学号,一般称为key,程序在学号数组中查找有没有对应的学号,如果有,则把相应的成绩信息打印出来,如果没有,显示not found 怎么查找(Search) 查找是另一个计算机领域里的比较经典的问题。 如果数据以数组的形式存放,并且知道要查找的数据与下标的关系,就非常容易在数组中定位感兴趣的数据(有一种散列查找就具备这样的特点,在数据结构课程中详细介绍)。 但是如果要查的数据没有与下标建立起直接的对应关系,只好从头开始进行逐个比较,这称为线性查找(顺序查找)。 如果数据已经按照要查的数据排好序,那么采用折半查找可以提高查找的效率。 算法设计(线性查找函数) 对于给定的查找key,和学号数组num[M] for( i=0;iM;i++) if num[i]等于key 则 return i 如果i=M 返回-1 算法实现 int linearSearch(const int num[], int key) { int i; for(i=0;iM;i++) if(num[i]==key) return i; if(i=M) return -1; } 在主函数中测试 scanf(“%d”,key); i = linearSearch( num, key); if( i != -1 ) { for( j=0; jN; j++){ printf(%10d,grade[i][j]); //print grade printf(%10d\n,total[i]); //print total } } else printf(“not found\n”); 折半查找 折半查找也叫二分查找。前提: 数组num中的元素已经排好顺序(升或降) 算法设计(折半查找函数) 设num[ ]数组的下标范围[low,high], 且数组元素已有序, 在num[ ]中查找key 1) 如果 low = high,循环执行2)到5) 2) 计算中点: mid = (high-low) / 2 3) 如果 key num[mid], 则修改 low=mid+1, 转到1) 4) 否则,如果 key num[mid], 则修改high=mid-1, 转到1) 5) 否则,已经找到 return mid, 算法实现(二分查找函数) int binSearch ( int num[ ], int key) { int low, high, mid; low=0; high= M-1; while ( low = high) { mid=(high+low)/2; if( num[mid]key) low = mid + 1; else if (num[mid]key) high = mid - 1; else return (mid); } return (-1); } 字符型数组与字符串 实际问题当中,学生的ID是一个比较长的字符串,不是整数值, 字符串怎么比较呢? 每个人的ID字符串怎么存储呢? 全部所有学生的ID又怎么存储呢? 在C语言中字符串到底是怎么定义的呢? 什么是字符串? 用双引号引起来的一串字符就是字符串 姓名字符串“zhangqiang”,学号ID字符串“0308606709”等等 ,字符串常量 字符串是怎么存储到内存中呢? 是一个字符占一个字节,10个字符的ID就占用10个字节吗?如果有两个字符串需要连续存储怎么办呢?例如
您可能关注的文档
- 我地第二次生命(沪教版).ppt
- 我好-你好有效地人际沟通.ppt
- 我对教育技术的理解8.ppt
- 我对时间的情怀选择.doc
- 我应该感到自豪才对 复习课9.ppt
- 我心中地优秀教师成长之路.doc
- 我心中的教育技术8.ppt
- 我是一名射击游戏地狂热爱好者.doc
- 我最崇尚的校长 张萍8.doc
- 我校高中女生对形体模块瑜伽选修课的兴趣和动机的调查分析8.doc
- 计算机行业深度报告:AI Agent:智能经济时代的生产力解压缩器.docx
- 2025第一季度亚洲新兴市场 印度与东盟并购报告.pdf
- CTV广告指南-CTV 剖析、效果追踪、实操案例全解析.docx
- 传媒互联网行业专题:海外为鉴,研判AI应用产业趋势.pdf
- 计算机行业深度报告:AI Agent:智能经济时代的生产力解压缩器.pdf
- “轻骑兵”挺进主战场——短视频平台“Top100新闻达人”洞察报告.pdf
- 2025情绪价值系列报告之音乐:版权拓展有望驱动音乐行业从付费增长转向流量、付费双增.pdf
- 2025年第二季度全国物流地产市场报告.pptx
- 中国城市技术创新月报-武汉市篇(2025-7).docx
- 2025年激光医美服务品牌推荐:她为美拼了!女性为何为“无创抗衰”一掷千金?.pdf
最近下载
- 2025年广东省基层住院医师线上岗位培训(口腔学)专业课答案(1-2).docx
- 2025年设备监理师《设备工程质量管理与检验》考前点题卷一.docx VIP
- 六西格玛案例之优化电池烘烤工艺.pptx VIP
- 机动车驾驶人考试员相关规定幻灯片.ppt
- 设备使用管理标准.pptx VIP
- 16D303-2常用风机控制电路图.doc
- 《七大浪费分析与改善》培训.ppt VIP
- 人教版《义务教育教科书数学》教材培训.ppt VIP
- 2025年设备监理师《设备工程质量管理与检验》模拟试卷二.docx VIP
- 青岛科技大学2022-2023学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
文档评论(0)