C语言设计实验报告.docx

上传人:b****1 文档编号:12449880 上传时间:2023-04-19 格式:DOCX 页数:12 大小:182.51KB
下载 相关 举报
C语言设计实验报告.docx_第1页
第1页 / 共12页
C语言设计实验报告.docx_第2页
第2页 / 共12页
C语言设计实验报告.docx_第3页
第3页 / 共12页
C语言设计实验报告.docx_第4页
第4页 / 共12页
C语言设计实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言设计实验报告.docx

《C语言设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言设计实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

C语言设计实验报告.docx

C语言设计实验报告

C语言程序设计实验报告

1实验目的

(1)掌握函数的定义方法、调用方法、参数说明以及返回值;

(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;

(3)掌握函数的嵌套调用及递归调用的设计方法;

(4)在编程过程中加深理解函数调用的程序设计思想。

2实验内容

(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。

(2)输入三个整数,求最大值和最小值。

(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。

如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。

(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。

3算法描述流程图

(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。

(2)输入三个整数,求最大值和最小值。

(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。

如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。

(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。

4源程序

(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。

#include<>

voidprimeNum(intx)

{

inti,k;

if(x==0||x==1)

printf("%disnotaprimenumber\n",x);

else

{

for(i=2;i<=x/2;i++)

if(x%i==0)

k=0;

if(k==0)

printf("%disnotaprimenumber\n",x);

else

printf("%disaprimenumber\n",x);

}

}

voidmain()

{

intm;

printf("请输入一个数:

");

scanf("%d",&m);

primeNum(m);

}

(2)输入三个整数,求最大值和最小值。

#include<>

intgetMax(inta,intb,intc)

{

intmax=a;

if(b>max)

max=b;

if(c>max)

max=c;

returnmax;

}

intgetMin(inta,intb,intc)

{

intmin=a;

if(b

min=b;

if(c

min=c;

returnmin;

}

main()

{

intx,y,z,m,n;

printf("请输入三个数:

");

scanf("%d%d%d",&x,&y,&z);

m=getMax(x,y,z);

n=getMin(x,y,z);

printf("最大值是%d\n",m);

printf("最小值是%d\n",n);

}

(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。

如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。

#include<>

intmulNum(inta,intb)

{

if(a%b==0)

return1;

else

return0;

}

main()

{

intx,y,m;

printf("请输入两个整数:

");

scanf("%d%d",&x,&y);

m=mulNum(x,y);

if(m==1)

printf("%disamultipleof%d\n",x,y);

if(m==0)

printf("%disnotamultipleof%d\n",x,y);

}

(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。

#include<>

intgcd(intx,inty)

{

intt,i;

t=x

y;

for(i=t;i>=1;i--)

{

if(x%i==0&&y%i==0)

break;

}

returni;

}

intmul(intx,inty,intz)

{

intt,k;

t=x>yx:

y;

for(k=t;k<=x*y;k++)

{

if(k%x==0&&k%y==0)

break;

}

returnk;

}

main()

{

inta,b,m,n;

printf("请输入两个正整数:

");

scanf("%d%d",&a,&b);

m=gcd(a,b);

n=mul(a,b,m);

printf("最大公约数是:

%d\n最小公倍数是:

%d\n",m,n);

}

5测试数据

素数判断:

0,1,2,5,9,13,59,121;

求三个数中的最大最小值:

4,8,9;8,4,9;8,9,4;

判断两个数是否是倍数关系:

1与5,5与5,6与2,6与4,20与4,37与9。

求两个数的最大公约数和最小公倍数:

10和15;24和18;12和24;

6运行结果

素数判断

求三个数中的最大最小值

判断两个数是否是倍数关系

求两个数的最大公约数和最小公倍数

7出现问题及解决方法

实验

(1)要求函数类型为空值(void),不能有返回值,且要求在函数中输出是否为素数;解决方法:

if(x%i==0)

k=0;

if(k==0)

printf("%disnotaprimenumber\n",x);

else

printf("%disaprimenumber\n",x);

实验(5)要求将最大公约数与两个整数一起作为实参传递给函数mul(),以此求出最小公倍数;解决方法:

intmul(intx,inty,intz)

{

intt,k;

t=x>yx:

y;

for(k=t;k<=x*y;k++)

{

if(k%x==0&&k%y==0)

break;

}

returnk;

}

没有用到变量z。

或者:

intmul(intx,inty,intz)

k=x*y/z;

returnk;

}

实验中我采取了第一种方法,但第二种方法较为简单,因为最初不知道最小公倍数=两个整数乘积再除以最大公约数

8实验心得

通过本次实验,更加熟练地掌握了函数的定义与调用,函数参数和返回值的使用方法;并练习了循环结构和条件控制语句的用法;对函数调用的程序设计思想加深了理解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1