《C程序设计》实验报告.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验项目:数组(一) 实验内容: 实验1:约瑟夫生死者游戏:每30个乘客同乘一艘船,因为严重超载,加上风高浪大,危险万分,因此船长告诉乘客,只有将全船一半乘客投入海中,其余人才能幸免于难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第1个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9人,再将他扔到大海中,如此循环地进行,直到剩下15个乘客为止。问哪些位置是将被扔下大海的位置。 实验6(1):用选择法对10个整数排序。10个整数用整数scanf函数输入。 实验6(2):有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果不存在该数中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。 实验6(4):找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。 程序实现: 约瑟夫生死环、选择排序法对数组中的元素进行排序主要是利用数组和for语句、if语句的嵌套实现程序;选择排序过程主要用到for语句;折半查找法,查找过程中主要要对二维数组进行初始化、while语句与for语句的循环;实验6(4)需要找一个二维数组的鞍点,主要应用for语句和if语句的循环嵌套实现。 程序: 实验1约瑟夫生死环: #includestdio.h void main() {int a[30]; int i,j=0,n=0; for(i=0;i30;i++)a[i]=1; for(i=0;i30n15;i++) {if (a[i]==1)j=j+a[i]; if(j==9) {printf(被扔下海的位置是:); a[i]=0; printf(%d ,i+1); printf(\n); j=0; n++;} if(i==29)i=-1;} printf(\n); } 实验6(1)选择排序: #includestdio.h void main() { int i,j,min,temp,a[11]; printf(输入数据:\n); for(i=1;i=10;i++) { printf(a[%d]=,i); scanf(%5d,a[i]); } printf(\n); printf(开始的数据:\n); for(i=1;i=10;i++) printf(%5d,a[i]); for(i=1;i=9;i++) { min=i; for(j=i+1;j=10;j++) if(a[min]a[j])min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf(\n排列后的数据:\n); for(i=1;i=10;i++) printf(%5d,a[i]); printf(\n); } 实验6(2)折半查找: #includestdio.h #define N 15 void main() { int i,number,top,bott,mid,loca,a[N],flag=1,sign; char c; printf(输入数据:\n); scanf(%d,a[0]); i=1; while(iN) {scanf(%d,a[i]); if(a[i]=a[i-1]) i++; else printf(再次输入数据:\n); } printf(\n); for(i=0;iN;i++) printf(%4d,a[i]); printf(\n); while(flag) {printf(要查找数:); scanf(%d,number); sign=0; top=0; bott=N-1; if((numbera[0])||(numbera[N-1])) loca=-1; while((!sign)(top=bott)) {mid=(bott+top)/2; if(number==a[mid]) {loca=mid; printf(发现 %d它的位置是 %d\n,number,loca+1); sign=1; } else if(numbera[mid]) bott=mid-1; else top=mid+1; } if(!sign||loca==-1) printf(无此数 %d\n,number); printf(是否继续 (Y/N)?); scanf( %c,c); if(c==N||c==n) flag=0; } } 实验6(4)二维数组的鞍点: #includestdio.h #define N 4 #define M 5 void m

文档评论(0)

ea238982 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档