您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 实验5_函数程序设计
韩山师范学院C语言程序设计第1页共4页实验名称:实验五函数程序设计日期:2014.05.13任课教师:和力专业:信息管理与信息系统学号:2013117123姓名:蔡小莲【实验目的】1、掌握函数的定义与调用2、掌握函数参数的传递方式3、领会函数的递归调用【实验内容】1、用递归法求两个正整数x、y的最大公约数,递归公式为:其它如果且如果)mod,gcd(),gcd(0mod),gcd(yxyxyxyyxxyyyx解题思路:根据所给出的公式将自定义函数写出来将两个实参值a,b传递给x,y,执行输入的两个正整数,最后将c调入主函数中,输出最大公约数。流程图:输入正整数a,bc=gcd(a,b)输出c实参的值传给x,yTy=x且xmody=0Fc=yTyxFc=gcd(y,x)c=gcd(y,xmody)源程序:#includestdio.hintmain(){intgcd(intx,inty);inta,b,c;printf(输入两个正整数:);scanf(%d,%d,&a,&b);c=gcd(a,b);韩山师范学院C语言程序设计第2页共4页printf(两个数的最大公约数是:%d\n,c);return0;}intgcd(intx,inty){intc;if(y=x&&x%y==0)c=y;elseif(yx)c=gcd(y,x);elsec=gcd(y,x%y);return(c);}运行结果:学习心得(可选):2、编写一函数完成十进制整数到二进制数的转换,函数的原型为:voiditob(intn,chars[])并测试你编写的函数。解题思路:输入一个数字利用voiditob(intn,chars[])函数进行十进制数转换成二进制数的运算,再对函数调用,然后输出结果。流程图:输入十进制数n和字符数组str[20]i=0,n0str[i]=n%2+‘0’str[++i]=‘\0’n=n/2i=i-1i=0韩山师范学院C语言程序设计第3页共4页输出str[i]i++输入n定义str[20]itob(n,str)源程序:#includestdio.hvoiditob(intn,charstr[]){inti=0,j=0;printf(转换成的二进制整数是:\n,n);while(n){str[i]=n%2+'0';str[++i]='\0';n=n/2;}for(i=i-1;i=0;i--){printf(%c,str[i]);}}voidmain(){intn;charstr[20];printf(请输入一个十进制数:,n);scanf(%d,&n);itob(n,str);}运行结果:韩山师范学院C语言程序设计第4页共4页学习心得(可选):【教师评语和成绩】成绩:指导教师:日期:
本文标题:实验5_函数程序设计
链接地址:https://www.777doc.com/doc-2457301 .html