资源描述:
《C语言函数编程练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、函数编程练习1、编写两个函数,分别求最大公约数(greatestcommondivisor)和最小公倍数(leastcommonmultiple)。解:(1)函数原型与参数说明:最大公约数函数:intgcd(inta,intb)形参与函数类型含义inta第一个数intb第二个数intgcd()返回最大公约数最小公倍数函数:intlcm(inta,intb,intg)形参与函数类型含义inta第一个数intb第二个数intg两个数的最大公约数intgcd()返回最小公倍数(2)源程序:1.1主函数(main.c)#includevoidmain(){intgcd(int,
2、int);intlcm(int,int,int);intm,n,g,l;scanf("%d,%d",&m,&n);g=gcd(m,n);l=lcm(m,n,g);printf("greatestcommondivisor:%d",g);printf("leastcommonmultiple:%d",l);}1.2最大公约数函数(gcd.c)intgcd(inta,intb){intt,r;if(a
3、){return(a*b/g);}2、求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于零、等于零和小于零时的根。解:(1)函数原型与参数说明:b2-4ac大于零函数:voidf1(floata,floatb)形参与函数类型含义floata方程参数afloatb方程参数bvoidf1()没有返回值,通过全局变量实现计算b2-4ac等于零函数:voidf2(floata,floatb)形参与函数类型含义floata方程参数afloatb方程参数bvoidf2()没有返回值,通过全局变量实现计算b2-4ac小于零函数:voidf3(floata,floatb)形参与函数类型含义
4、floata方程参数afloatb方程参数bvoidf3()没有返回值,通过全局变量实现计算(2)全局变量说明全局变量含义floatX1方程第一个根floatX2方程第二个根floatDiscb2-4acfloatRe实部(realpart)floatIm虚部(imaginarypart)(3)源程序:2.1主函数(main.c)#include#includefloatX1,X2,Disc,Re,Im;voidmain(){voidf1(float,float);voidf2(float,float);voidf3(float,float);float
5、a,b,c;printf("pleaseinputa,b,c");scanf("%f,%f,%f",&a,&b,&c);Disc=b*b-4*a*c;if(Disc>0){f1(a,b);printf("x1=%f,x2=%f",X1,X2);}elseif(fabs(Disc)<1e-6){f2(a,b);printf("x1=x2=%f",X1);}else{f3(a,b);printf("x1=%f+%fi,x2=%f-%fi",Re,Im,Re,Im);}}2.2b2-4ac大于零函数(f1.c)#includeexternfloatX1,X2,D
6、isc;voidf1(floata,floatb){X1=(-b+sqrt(Disc))/(2*a);X2=(-b-sqrt(Disc))/(2*a);}2.3b2-4ac等于零函数(f2.c)externfloatX1;voidf2(floata,floatb){X1=(-b)/(2*a);}2.4b2-4ac小于零函数(f3.c)#includeexternfloatDisc,Re,Im;voidf3(floata,floatb){Re=(-b)/(2*a);Im=sqrt(-Disc)/(2*a);}3、编写一个判断素数(primenumber)的函数。解:(1)函
7、数原型与参数说明:求素数函数:intprime(intn)形参与函数类型含义intn一个整数intprime()是素数返回1,不是素数返回0(2)源程序:3.1主函数(main.c)#includevoidmain(){intprime(int);intn;printf("pleaseinputaninteger:");scanf("%d",&n);if(prime(n))printf("%disaprime.