实验报告实验08函数
2007级高级语言程序设计上机实验报告课程名称:高级语言程序设计班级:实验日期:07-12-21姓名:学号:实验名称:函数 实验序号:实验八一、实验目的及要求1.掌握函数的定义、调用以及参数的传递,学会编写一些函数,理解参数之间传递的实际含义。二、实验环境Turbo 2.0或相近的环境三、实验内容 第八章习题中的8.1、8.3,8.13,8.18。 补充:1 歌德巴赫猜想:大于6的任意一个偶数,都等于两个素数之和2 师傅收徒弟问题:有个人某年从师,两年后开始招徒弟,每年招一人,徒弟两年满师后也一年招一徒。问15年后这个人的徒子徒孙一共多少人? 四、算法描述及实验步骤用算法表示方法,流程图等形式表达算法设计思想与算法实现步骤8.1 1)输入两个整数没m,n 2) 如果(n>m)m与n互换 int yue(int m,int n) int a,x; 当(m%n!=0) a=n;n=m%n;m=a; x=n; 如果(m%n=0) x=n; 返回(x)的值 int bei(int m,int n) int d,x;x=yue(m,n); d=m*n/x; 返回(d)的值 3)输出最大公约数和最小公倍数8.3 1)输入一个数 2)如果(w=1) printf("tt non");如果(w=0) printf("tt yesn"); int num(int n) int i,j; for(i=2;i<n/2;i+) 如果(n%i=0) j=1;break; 如果(n%i!=0) j=0; 3)输出结果8.13 1)输入x和n的值 2)如果(n=0) an=1; 如果(n=1) an=x; 如果(n>1) an=(2*n-1)*x-an-1-(n-1)*an-2)/n; y=an; 3)输出结果8.18 1)输入年月日 2) int run(int x)int w; 如果(x%4=0) if(x%100!=0) w=1; 如果(x%400=0) w=1; 其余 w=0; 其余 w=0; 返回(w);int sum(int y)int i,t=0; int a13=0,31,28,31,30,31,30,31,31,30,31,30,31; for(i=0;i<y;i+) t=t+ai; 返回(t);3)输出结果五、调试过程及实验结果详细记录程序在调试过程中出现的问题及解决方法。记录程序执行的结果。 问题: 函数的调用 方法: 上机实践8.18.38.138.18六、总结对上机实践结果进行分析,上机的心得体会。分析心得: 终于知道为什么函数是C语言的精华,学C主要就是学函数,今天终于体会到了什么叫精华.七、附录(源程序清单)8.1#include"stdio.h"#include"conio.h"int f,d;void main()int yue(int m,int n);int bei(int m,int n); int b,t,m,n; clrscr(); printf("input the number:n"); scanf("%d,%d",&m,&n); if(n>m) t=n;n=m;m=t; b=yue(m,n); f=bei(m,n); printf("output the number:n"); printf("yue=%d,bei=%dn",b,f); int yue(int m,int n) int a,x; while(m%n!=0) a=n;n=m%n;m=a; x=n; if(m%n=0) x=n; return(x); int bei(int m,int n) int d,x;x=yue(m,n); d=m*n/x; return(d);8.3#include"stdio.h"#include"conio.h"void main()int n,w;int num(int); clrscr(); printf("input the number:n"); scanf("%d",&n); w=num(n); printf("output the result:n"); if(w=1) printf("tt non");if(w=0) printf("tt yesn"); int num(int n) int i,j; for(i=2;i<n/2;i+) if(n%i=0) j=1;break; if(n%i!=0) j=0; return(j);8.13#include"stdio.h"#include"conio.h"void main()float jie(float n,float x); float qiu,x,n; clrscr(); printf("Input the numbers:n"); scanf("%f,%f",&n,&x); qiu=jie(n,x); printf("Output the numbers:n"); printf("%f",qiu); getch(); float jie(float n,float x)float y,a555; if(n=0) an=1; if(n=1) an=x; if(n>1) an=(2*n-1)*x-an-1-(n-1)*an-2)/n; y=an; return(y); 8.18#include"stdio.h"#include"conio.h"void main()int x,y,z,c,sum1,b; int run(int x); int sum(int y); clrscr(); printf("The date is "); scanf("%d,%d,%d",&x,&y,&z); c=run(x); b=sum(y); if(y>2) sum1=c+b+z; else sum1=b+z; printf("nnThe total is %d",sum1); getch();int run(int x)int w; if(x%4=0) if(x%100!=0) w=1; elseif(x%400=0) w=1; else w=0; else w=0; return(w);int sum(int y)int i,t=0; int a13=0,31,28,31,30,31,30,31,31,30,31,30,31; for(i=0;i<y;i+) t=t+ai; return(t);