资源描述:
《c语言程序设计-实验第五次上机实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、6.第五次实验C语言程序设计实验报告专业计算机科学与技术班级信安1302班日期2014.5.10成绩实验组别第5次实验数组实验指导教师周时阳学生姓名熊雅媛学号U201315156同组人姓名实验名称数组实验6.1实验目的1.掌握数组的说明、初始化和使用。2.掌握一维数组作为函数参数时实参和形参的用法。3.掌握字符串处理函数的设计,包括串操作函数及数字串与数之间转换函数的实现算法。4.掌握基于分治策略的二分查找法和选择法排序算法的思想,以及相关算法的实现。6.2实验内容(一)设计一个实现多个功能(如,N个数求最大数和一元二次
2、方程求根等等)的演示系统。源程序如下:shangji5chengxu25#include#include#include"root.h"#include"max.h"#include"shuixianhaushu.h"#include"wanquanshu.h"intmain(){inta,b,c;intb1[100],n,i;printf("input:");scanf("%d%d%d",&a,&b,&c);root(a,b,c);printf("inputn:");scanf("%
3、d",&n);printf("inputnumbers:");for(i=0;imax)max=a[i];}printf("max=%d",max);}voidroot(inta,intb,intc)/*求出一元二次方程的根,其中a,b,c为参数*/{intd;d=b*b-4*
4、a*c;if(d<0){printf("inputerror!");}elseif(d==0){printf("x1=x2=%.2lf",-(1.0*b)/(2.0*a));}else{printf("x1=%.2lf",((-1.0*b)+sqrt(d))/(2.0*a));printf("x2=%.2lf",((-1.0*b)-sqrt(d))/(2.0*a));}}intsxh(intx)/*判断一个数是否为水仙花数,是则输出1,不是则输出0*/{ints,r,x1;x1=x;s=0;do{r=x%10
5、;s+=r*r*r;}while((x/=10)!=0);if(s==x1)return(1);elsereturn(0);}intwqs(intx)/*判断一个数是否为完全数,是则输出1不是则输出0*/{inti,s;s=0;for(i=1;i<=x/2;i++){if(!(x%i))s+=i;}if(s==x)return(1);elsereturn(0);}实验步骤:步骤一:分别定义几个子函数,分别可以用来计算n个数中的最大值,计算一元二次方程的根,判断一个数是否为水仙花数和完全数(也可以选用具有其他功能的子函数)
6、,放在不同的头文件中。步骤二:在主函数中,用include处理自己定义的头文件,以方便主函数的调用。调试及编译过程:测试数据:输入a=1,b=-2,c=2求该方程的根,输入五个数求最大值出现的不足及修改:无实验结果:在主函数中用到了前两个子函数,输出正确的结果,用户可根据自己的需要调用其他的子函数。(二)设计一个递归程序计算组合数C(n,m)=A(n,m)/m!源程序如下:shangji5chengxu26#includeintc(intm,intn);intmain(){intx1,x2;print
7、f("x1=?x2=?");scanf("%d%d",&x1,&x2);printf("%d",c(x1,x2));return0;}intc(intm,intn){if(!n)return1;elsereturn(c(m,n-1)*(m-n+1)/n);}实验步骤:步骤一:将计算组合数的值定义为子函数,在主函数前声明该函数,在主函数中调用子函数。步骤二:在子函数的定义中,利用递归的思想。调试及编译过程:测试数据:1,0(特殊情况)测试数据:6,3(一般情况)出现的不足及修改:无实验结果:出现预期的结果。(三)mccat
8、hy函数m(x)定义如下,编写一个递归程序计算给定x的m(x)的值。 源程序如下:shangji5chengxu27#includeintm(intx);intmain(){inta;printf("a=?");scanf("%d",&a);printf("mccathy(a)