c语言实验报告、折半查找数

c语言实验报告、折半查找数

ID:5723807

大小:102.50 KB

页数:6页

时间:2017-12-23

c语言实验报告、折半查找数_第1页
c语言实验报告、折半查找数_第2页
c语言实验报告、折半查找数_第3页
c语言实验报告、折半查找数_第4页
c语言实验报告、折半查找数_第5页
资源描述:

《c语言实验报告、折半查找数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计实验报告实验名称数组学院材料与冶金学院专业班级新能源科学与工程姓名汪爽学号20110558任课教师柳秀梅实验时间2012年10月13日1实验目的1.熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;2.熟练掌握字符数组和字符串函数的使用;3.掌握与数组有关的常用算法(如查找、排序)。2实验内容编程实现“折半查找”的过程。要求1.设定一个整型数组存放20个元素,采用直接赋值的方法在程序之初始化该数组;2.用scanf函数输入一个要找的数值;3.对查找的结果给出相应的说明,如果找到该数值,则输出“Found”信息,并给出该数是数组中的第

2、几个元素。如果该数值不在数组中,则输出“Notfound”信息;4.修改程序,设定输入的数据是无序的,则先要对这些无序的数据进行排序,然后在采用“半折查找”。3算法描述流程图YYYYY开始a[20]={2,1,4,5,7,3,6,9,10,8,14,15,12,19,20,17,18,11,13,16},b,q,d,i,,min=0n,m,p=10,c,s=10最大数和最小数的序数max=19n<=19?i<=19?a[n]>a[i]?将最小的数赋给a[n]q>9?b是要找的数吗b=a[s]?b>a[s]?b在前面c=s;s=(max-min)/2+mi

3、n;max=c;将区间缩小,取中点b在后面c=s;s=max-(max-min)/2min=c;将区间小,取中点输出Found位置num=s+1输出Notfound结束Yq=q+14源程序#include#includevoidmain(){inta[20]={2,1,4,5,7,3,6,9,10,8,14,15,12,19,20,17,18,11,13,16},b,q,d,i,max=19,min=0,n,m,p=10,c,s=10;for(n=0;n<=19;n++){for(i=n;i<=19;i++){if(a[

4、n]>a[i]){m=a[n];a[n]=a[i];a[i]=m;}}printf("%d",a[n]);}printf("请输入要查找的数");scanf("%d",&b);for(q=1;q<=10;q++){if(max-min!=0){if(b==a[s]){d=1;break;}else{if(b>a[s]){c=s;s=max-(max-min)/2;min=c;d=0;}elsec=s;s=(max-min)/2+min;max=c;d=0;}}}if(d==1){s=s+1;printf("FoundNum=%d",s);}elsep

5、rintf("notfound");}5测试数据测试数据为5,236运行结果当输入数值为3时当输入数值为87时7出现问题及解决方法1.本实验需要对数组排序因此采用循环for(n=0;n<=19;n++){for(i=n;i<=19;i++){if(a[n]>a[i]){m=a[n];a[n]=a[i];a[i]=m;}}printf("%d",a[n]);}从而将数组排序,并输出顺序数组。2.实验需要半折找数因此采用循环for(q=1;q<=10;q++){if(max-min!=0){if(b==a[s]){d=1;break;}else{if(b

6、>a[s]){c=s;s=max-(max-min)/2;min=c;d=0;}elsec=s;s=(max-min)/2+min;max=c;d=0;}}}从而找到数组中是否有要找的数,是则d=1,不是则d=0.8实验心得1.通过实验我对c语言的编程语言更加熟悉,加快编程输入语言的速度。2.掌握一维数组、二维数组的定义、初始化和输入/输出方法;掌握字符数组和字符串函数的使用;掌握与数组有关的常用算法(如查找、排序)。3.再次让我明白做实验时要细心,认真检查。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。