C语言程序设计博客作业04

这个作业要求在哪里https://bbs.csdn.net/topics/609526289
我在这个课程的目标是了解函数的作用,确定函数功能,函数的定义,函数的调用,函数的参数等等内容
这个作业在那个具体方面帮助我实现目标帮我进一步扩展C语言编程思维,学会了利用构造函数来达到“分而治之”的效果
参考文献c语言程序设计1,百度,csdn网站

1.pta实验作业

在这里插入图片描述

1.1输出Fibonacci数列的前n项

已知Fibonacci数列的规律是1,1,2,3,5,8,…,即数列的前两项是1,其后的每一项都是其前两项的和。输出Fibonacci数列的前n(1<=n<=40)项。要求定义并调用含静态变量的函数Fibonacci(n)计算Fibonacci数列的第n项。

1.1.1数据处理

1.数据表达:定义整形变量i,n, f,f1,f2,count,给f1,f2,count赋初值:f1=1,f2=1,count=2,i用于循环变量,n控制循环结束条件,根据Fibonacci数列特点先给前两项赋值,count用于控制换行。
2.数据处理:
在这里插入图片描述

1.1.2实验代码截图

在这里插入图片描述

1.1.3造测试数据
输入输出
51 1 2 3 ( 第一列)5 ( 第二列)
101 1 2 3 ( 第一列)5 8 13 21 ( 第二列) 34 55 ( 第三列)
1.1.4提交列表说明

在这里插入图片描述
说明:
1.第一次编译时,未考虑到输出格式的换行问题,导致提交格式不正确,通过查找资料,引入一个变量count来控制输出换行格式。
2.因为不是很清楚静态变量的函数,通过尝试,一直编译不成功,所以未定义并调用含静态变量的函数解决该题。

1.2建国的数学难题

众所周知,建国是一个数学天才,但是今天他被下面这道题考到了,你能帮建国解决这个难题吗?
f(1) = k
f(2) = f(1) + 1
f(3) = f(2) + 1 + 2

f(n) = f(n-1) + (1 + 2 + … + n-1)

1.2.1数据处理

1.数据表达:定义整型函数int fun(int n,int k),在主函数中定义整型变量t,n,k,f,其中t为控制结束条件,控制测试的次数,n,k分别为具体测试数据,在int fun(int n,int k)函数中,定义整型变量c,用于储存输出结果,其中运用递归的方法解决该题。
2.数据处理:
在这里插入图片描述

1.2.2实验代码截图

在这里插入图片描述

1.2.3造测试数据
输入输出
2(第一行)1 1 (第二行)2 3(第三行)1 (第一行) 4(第二行)
1(第一行)2 3(第二行)4
1.2.4提交列表说明

在这里插入图片描述
说明:
通过预习教材和在csdn网站查找资料,学会了用递归的方法解决该题,递归的方法能够很方便的解决该题,为C语言解题又提供了一种新的解题思路,在定义函数中调用该函数,但是还有一些递归的处理细节不是很清楚,比如结束出口等问题。

2.代码互评

同学的代码:
在这里插入图片描述
自己的代码:
在这里插入图片描述
代码分析:
同学的代码和我的代码差别不大,只是自定义函数与主函数摆放的位置不同,和主函数输出结果时,我重新定义了一个变量来存放结果,同学的代码直接在printf函数输出更加简洁,但是思路基本上一致,利用递归的思路解题。

同学的代码:
在这里插入图片描述
自己的代码:
在这里插入图片描述

代码分析:
1.同学使用的是一维数组的方式解题,我用的for循环解题;
2.同学自定义了一个函数被主函数调用进而解题,我的代码没有自定义函数,直接用if-else,for循环解题;
3.同学的代码和我的代码都没有使用静态变量解题。

3.学习总结

3.1 学习进度条

在这里插入图片描述

3.2 累积代码行和博客字数

在这里插入图片描述

3.3 学习内容总结和感悟
3.3.1 学习内容总结

在这里插入图片描述

3.3.2 学习体会

存在问题:
1.不清楚含静态变量的函数的定义和调用。
2.不清楚如何使用局部变量和全局变量。
3.遇到复杂的问题,不能联系以前学的知识,不能将以前的知识融汇贯通。
下步打算:
1.继续弄懂,消化该章节的知识,尤其是静态变量的相关知识。
2.对第一次提交错误的题,回头看,再次提交。
3.在学习新知识的同时,利用复习题复习前面的知识,做到温故而知新。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值