C实验五数组的程序设计解析.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验名称:实验五数组的程序设计 班级 学号 姓名 实验地点 完成□期—成绩 (一) 实验目的 掌握一维和二维数组定义、赋值和使用方法: 掌握字符数组和字符串函数的用法; 3-掌握与数组有关的算法(特别是排序算法)。 (二) 实验内容 Problem Description对于输入的n个整数,先进行升序排序,然后进行二分査找。 Input测试数据有多组,每组测试数据的第一行是一个整数11(1=11=100),第二行有11 个各不相同的整数待排序,第三行是査询次数nnl=m=100),第四行有m个整数待査找。 处理到文件结束。 Output每组测试分2行输出,第一行是排序后的升序的结果,每个数据之间1个空格; 第二行是査找的结果,若找到则输出排序后元素的位置(从1开始),否则输出0.每个数 据之间1个空格-(8005) PiobleinDescnption如果矩阵A中存在这样的一个元素A[i](j]满足下列条件: 是第】行中值最小的元素,且又是第j列中偵最大的元素.则称之为该矩阵的一个马鞍点。 编写一个程序计算出矩阵A的马鞍点的值。 Input输入数据首先包含一个整数T,表示测试实例的个数,然后是T组测试数据。 每组测试数据首先是2个正整数m.n(l =m.n= 100),分别表示二维数组的行和列。 然后是二维数组的信息,数据之间用空格分割,每个数组元素均为血型范围. 说明:为了方便起见,我们假设二维数组的元素各不相同。 Output对丁-每组测试数据,输出马鞍点的值,若不存在鞍点,输出Impossible 0 (1208) 对给定的数据进行排序。每组测试数据的结构是 第一行为一个整数N (0N100), 表示后面有N个整数(每个整数最多可达80位)需要排序输出,先按长度排(短的在前),如 长度一样则按大小排(小的在前)。若遇到N等于零,则运行结束。每组结果之间留一个空 行0 (1154) 实验具体步骤 1. Problem Description对于输入的n个整数,先进行升序排序,然后进行二分査找。 Input测试数据有多组,每组测试数据的第一行是一个整数n(l=ii=100),第二行有n 个各不相同的整数待排序,第三行是查询次数m(l=m=100).第四行有m个整数待査找。 处理到文件结束。 Output每组测试分2行输出,第一行是排序后的升序的结果,每个数据之间1个空格; 第二行是查找的结果,若找到则输出排序后元素的位置(从1开始),否则输出0.每个数 据之间1个空格。(8005) 解题思路: 首先,认真解读题目,该题首先是要用到排序,因为还要进行査找二分査找’所以就要 有两个数组,设为a数组和b数组,即在a数组中查找b数组里的元素,如果查到就输出该 元素在a数组中的位置,査不到就输出零。在输入一个。时?由n控制a数组的元素个数, 输入n个数,然后用对a数组进行升序排序。然后输入一个m,用来控制b数组的元素个数, 然后是输入m个数到b数组,接卜来就是要做二分查找,将n个元素分成个数大致相同的两 半,取a [mid]与欲査找的b[i]作比较,如果b[i] aLmid],则在a [mid]左边在进行二分査 找,否则就在曰的右边进行査找。如果b[i]=a[mid]则找到b[i];就.输出b[i]在数组a[i] 里的卜-标(mid+1),并退出循环。如果找不到就输出0。 关键代码: wlule(scanf(%d.n)=EOF) { for(i=0;in;i++) foi(i=0;in-l;i++) { fbr(j=Ojn-i-lJ-H-) { { 5; ag+1]; a[j+l]=t; ) fbr(i=O;in;i++) { if(i0) pnntfT ”); printf(”%d”,a[i]); } pimtf(n\ir); scanf(”%d”,in); for(i=0;im;i++) { mt taiud; scant(” int s=O,e=n-l; wlule(s=e) ! inid=(s+e)/2; if(a[imd]=t) break; else if (ta[inid]) s=mid-l; else e=imd-l; } if(se) mid=-l; prmrfC ”); printf(” %d 二 mid+1); } piiiitfCW); } 2. Problem Description如果矩阵A中存在这样的一个元素A[i][j]满足卜列条件:A[i][j] 是第1行中值最小的元素,旦又是第J列中值最大的元素,则称之为该矩阵的一个马鞍点。 编写一个程序计算出矩阵A的马鞍点的值。 Input输入数据首先包含一个整数T,表示测试实例的个数,然后是T组测试数据。 每组测试数据首先是2个正整数m.n (1

文档评论(0)

153****0404 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档