大学生C语言程序设计(第四版 谭洪强)实验4 答案(2)

2020-04-14 17:13

参考答案:

#include int main()

{ float score[10]={78,98,65,45,68,94,81,86,57,96},below[10],sum=0,aver; int i,j=0; printf(\个同学成绩为:\ for(i=0;i<10;i++) //输出数组中10个成绩 printf(\ \ for(i=0;i<10;i++) //求10个成绩之和 sum=sum+score[i]; aver=sum/10; // 求出平均值 for(i=0,j=0;i<10;i++) //遍历每个成绩 if(score[i]

运行结果:

(7) 请完善程序sy4-7.c,N 个有序整数数列已放在一维数组中,利用“折半查找算法”查找整数 m 在数组中的位置。若找到,则返回其下标值;反之,则返回\。 算法分析:

前提:数组中的元素已递增有序; 折半查找基本思路:查找过程中采用跳跃式方式查找,首先确定查找范围的下限为第一个元素的下标( low=0; ),上限为最后一个元素的下标( high=N-1; ),再折半计算出在此范围内的中间元素下标( mid=(low+high)/2; ) ;比较该中间元素a[mid]和查找数据m的关系有三种可能:若等于( m==a[mid] ),则找到结果,用k记其位置( k=mid; ),并结束查找( break; ) ;若大于( m>a[mid] ),则查找数据可能在中间元素的后半部分,修改查找范围的下限为mid+1(low=mid+1; );若小于( m

#define N 10 void main( )

{ int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m,low,high,mid; //low,high-查找数组元素范围的下标 printf(\数组中的数据如下:\ for(i=0;i< N;i++) printf(\ printf(\ printf(\ scanf(\ low=0;high=9; //设置初始查找范围 while(low<=high) //有查找范围,进入循环 { mid=(low+high)/2; //求mid,查找范围的中间元素下标 if(m==a[mid]) //如果中间元素等于被查找数,找到,跳出循环 { k=mid; break; } else if(mhigh , 已经没有查找范围了 }

运行结果:


大学生C语言程序设计(第四版 谭洪强)实验4 答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八上悦读联播翻译

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: