资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
实验报告课程名称:计算机软件技术基础学院:物理电子学院专业:电子信息与科学技术学生姓名:刘明哲学号:2014040206029日期:2015 年 03 月 22 日1.3利用减半递推技术,写出长度为 n的数组中最大元素的递归算法(用 C/C+描述)。设 n=2k,其中 k=1。程序说明:如果数组中只有一个元素,则该元素即数组中的最大元素,否则将数组对半分为前半部分和后半部分;分别求出数组前半部分和后半部分的最大值 m1、m2 并比较二者大小,若 m1m2,则 m1为数组中的最大值,否则 m2为数组中的最大值;程序清单:#includeint max(int array,int m,int n)int d,d1,d2;if(m=n)return(arraym-1);elsed1=max(array,m,(m+n)/2);d2=max(array,(m+n)/2,n);if(d1d2)d=d1;elsed=d2;return(d);main()int a10=1,2,3,4,5,6,7,8,9,10;printf(maximum=%dn,max(a,1,10);return 0;调试说明:运行结果:程序无法运行1.4 编写二分法求方程实根的减半递推算法( 用 C/C+描述)。程序说明:首先取给定区间的中点 c=(a+b)/2;然后判断 f(c)是否为 0.若 f(c)=0,则说明 c 即为所求的根,求解过程结束;若 f(c)!=0,则根据以下原则将区间减半;若 f(a)f(c)=l,则重复上述的减半过程。程序清单:#include#includedouble function(double x)return(2*x*x*x-3*x*x+2*x-6);/初始化方程int main()double lit=0.1;double a,b;printf(请输入取值范围:n);scanf(%lf%lf,&a,&b);/输入二分法取值边界double c=(a+b)/2;double result;while (fabs (function(c) lit)/判断中点的函数值是否大于极限值,满足则进行递推if(function(c)0)b=c;if(function(c)0)a=c;c=(a+b)/2;if(fabs(function(c)lit)/判断中点的函数值是否小于极限值,满足则近似看成方程组的零点result=c;printf(the result is:%fn,result);elseprintf(errorn);getchar();getchar();return 0;调试说明:运行结果:1. 程序暂时无法实现自主输入各项系数的功能,原因不明,尚且有待改进;2. 程序运行结束后窗口立即自动关闭,不过在最后添加一行 getchar()后问题得到初步解决;1.5 编写用回溯法求解皇后问题的算法( 用 C/C+描述)。程序说明:程序清单:调试说明:运行结果:
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号