您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页C语言程序设计实验五实验六题目 2

C语言程序设计实验五实验六题目 2

来源:意榕旅游网
C语言程序设计实验报告

(实验五:函数的调用工程化设计试验)

实验成绩:

(实验六:C程序函数递归调用工程化设计试验)

实验成绩:

专 业: 轨道交通信号与控制

班 级: 1303班

姓 名: 卢鹏伟

学 号: 201310032 指导教师: 李建国

兰州交通大学自动化与电气工程学院

20 14 年 5 月 17 日

实验五:函数的调用工程化设计试验

一 实验内容:

1. 判断101-1000之间有多少个水仙花数,并输出所有水仙花数和水仙花数的个数。所谓水仙花数是指一个数,其各位数字立方和等于该数本身。如153 = 1^3+5^3+3^3。

要求:

1 设计2个函数实现;其中一个函数以相乘方式实现,一个函数以求幂的方式实现;

2 主函数存放于main.c文件中,子函数存放于func1.c文件中,如有多个子函数,则依次存放于不同的funcX.c文件中,其中X为依次增长的数字;

3 函数名和变量名采用有意义的名字,应有必要的注释;

4按照编程风格要求编写程序;

二 实验目的:

完成求解101-1000之间的水仙花数的输出

本实验的目的是检验对工程化设计,函数设计,函数声明,函数定义,函数调用的掌握程度,在一定程度上也反应了对流程图,循环,条件判断的掌握情况。

提示:求幂的函数为pow。

1 / 17

三 实验过程:(学生完成)

1 解题思路

方法一:判断101-1000之间有多少个水仙花数,并输出所有水仙花数和水仙花数的个数。用循环做,定义一个三位数的个十百位的变量作如下循环for(i=100;i<1000;i++)

{ a=i/100;

b=i%100/10;

c=i%10;

if(pow(a,3)+pow(b,3)+pow(c,3)==i)

方法二:采用乘法的方式作如下循环 for(i=100;i<1000;i++{ b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c==i)

可以在结束时加一个如下循环来计数水仙花的个数{ k++; }

2 设计算法,画流程图如下图

2 / 17

a=i/100; 3编写源代码

#include

#include

int main()

{

3 / 17

int print_chengfa();

int print_lifang();

print_chengfa();

print_lifang();

return 0;

}#include

int print_chengfa()

{

int a,b,c,i,k=0;

for(i=100;i<1000;i++)

{

a=i/100;

b=i%100/10;

c=i%10;

4 / 17

if(a*a*a+b*b*b+c*c*c==i)

{

printf(\"shuixianhuashushi%d\\n\

k++;

}

}

printf(\"shuixianhuashu %d\\n\

return (k,i);

}‘

#include

#include

int print_lifang()

{

int a,b,c,i,k=0;

5 / 17

for(i=100;i<1000;i++)

{

a=i/100;

b=i%100/10;

c=i%10;

if(pow(a,3)+pow(b,3)+pow(c,3)==i)

{

printf(\"shuixianhuashushi%d\\n\

k++;

}

}

printf(\"shuixianhuashu %d\\n\

return (k,i);

}

6 / 17

4实验步骤上机

1建立一个空工程

2输入源代码

3执行build命令检查错吴发现座乘法是没有水仙花的个数

7 / 17

4 调试

5 实验结果

在代码四 实验分析

程序输出正常但做的过程中没有很好的在一个过程里面调用成功。经过好多次调试才得到结果。希望下次一次编写成功。

8 / 17

实验六:C程序函数递归调用工程化设计试验

一 实验内容:

小猴子吃桃。第一天摘下桃子吃了一半又一个,第二天又吃了剩下的桃子的一半又一个,以后每天都吃前一天剩下的一半再多吃一个,第十天就剩一个桃子了,求小猴子第一天摘了多少桃子。

要求:

1 设计两个函数实现;第一个函数采用循环方式实现;第二个函数采用递归方式实现;

2 主函数存放于main.c文件中,子函数存放于func1.c文件中,如有多个子函数,则依次存放于不同的funcX.c文件中,其中X为依次增长的数字;

3 函数名和变量名采用有意义的名字,应有必要的注释;

4 按照编程风格要求编写程序;

二 实验目的:完成求解第一天猴子摘了多少桃。

本实验的目的是检验对工程化设计,函数设计,函数声明,函数定义,函数调用,函数递归调用,在一定程度上也反应了对流程图,循环,条件判断的掌握情况。

三 实验过程:

9 / 17

1 解题思路方法一:函数采用循环方式实现采取逆向思维的方法,从后往前推断。第一天的桃子数是第2天桃子数加1后的2倍。for(i=1;i<10;i++){n=(n+1)*2;printf(\"猴子第%d天摘了%d个桃子\\n\ }

方法二采用递归方式实现。采用调用自身的方法做;int h;

if(t==1 h=1;

Else h=(dg(t-1)+1)*2; return (h);

2 设计算法,画流程图

printf(\"猴子第%d天摘了%d个桃子\\n\

10 / 17

3编写源代码#include

int main()

{

int dg(int m);

void print_xh();

printf(\"用方法一递归得桃子数:\\n\");

printf(\"小猴子第%d天摘了%d个桃子\\n\

11 / 17

printf(\"用方法二循环得桃子数:\\n\");

print_xh();

return 0;

}#include

void print_xh()

{

int i,n=1;

for(i=1;i<10;i++)

{

n=(n+1)*2;

printf(\"猴子第%d天摘了%d个桃子\\n\

}

return 0;

}#include

12 / 17

int dg(int t)

{

int h;

if(t==1)

h=1;

else

h=(dg(t-1)+1)*2;

printf(\"猴子第%d天摘了%d个桃子\\n\

return (h);

}

4实验步骤上机

1建立一个空工程

13 / 17

2输入源代码

3执行build命令检查错吴发现输出的天数是错误的‘还有循环是没有输出,想是由于调用时出现错误了’经过多次调试后得到真确结果

14 / 17

4 调试 在调试过程中发现调用函数时出现好多问题

为什么在16天后桃子吃不完了,难道猴子吃的撑死了。。原来int型数不出来了’原来如此

5 实验结果

15 / 17

四 实验分析

通过使用递归和循环两种方法做得实验结果,从中体验到两种方法的优点。循环做多了,做起来比较容易,递归不太会会做,最后还想算出每天吃了几个桃子,就加了

printf(\"猴子第%d天摘了%d个桃子\\n\语句。这样就可以找到每天吃了几个桃子。嘻嘻,设计的好。

16 / 17

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务