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

本次博客分享了C语言在PTA上完成的两个实验:输出Fibonacci数列的前n项和计算复数之和与之积。在Fibonacci数列实验中,通过静态变量实现递归,详细分析了数据处理和错误修正。复数运算部分涉及实部和虚部的处理,同样记录了代码实现和调试过程。此外,还进行了代码互评,对比了不同实现方式的优劣,并对本周学习进行了总结,反思了编程技巧和学习态度的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个作业要求在哪里http://t.csdn.cn/OS9BZ
我在这个课程的目标是理解并正确运用函数的定义和调用形式
这个作业在那个具体方面帮助我实现目标各种类型函数的基本运行规则,变量的作用域和生存期
参考文献《C语言程序设计教程》、百度

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. 数据表达
    定义了静态局部变量整型f表示Fibonacci数列除第一项、第二项的其他项数,定义长整型变量f1、f2分别表示Fibonacci数列的第一、第二两项,定义整型变量n表示输入前几位项数,整型i表示循环控制变量,整型count标识符来进行循环项数的计数并赋初值为2。用If选择结构来判断数列的第一项和第二项,for循环结构来循环数列除第一、第二两项其余项数,并嵌套if选择结构进行程序运行输出每行4个项数的判断。输出函数printf中“%-10ld”表示输出数据左对齐。
  2. 数据处理

在这里插入图片描述

1.1.2实验代码截图

在这里插入图片描述

1.1.3 造测试数据
输入数据输出数据
101 1 2 3
5 8 13 21
34 55
41 1 2 3
51 1 2 3
5
31 1 2
1.1.4 PTA提交列表及说明

在这里插入图片描述
提交作业说明
1.编译错误:没有根据题目要求将整型f定义为静态局部变量,仔细核实题意后翻阅《C语言程序设计教程》关于静态局部变量的定义章节,加上了static
2.编译错误:for循环的循环体结束处未进行count++的编译,没有计数上的逐一递增,请教同学后在循环体处加上了count标识符的一元自增运算符++

1.2计算2个复数之和与之积

分别输入2个复数的实部与虚部,用函数实现计算2个复数之和与之积。
若2个复数分别为:c1=x1+(y1)i, c2=x2+(y2)i,
则:

c1+c2 = (x1+x2) + (y1+y2)i
c1c2 = (x1x2-y1y2) + (x1y2+x2*y1)i

1.2.1数据处理

1.数据表达
由题意定义了单精度浮点型x1,x2,y1,y2为局部变量,定义单精度浮点型x,y为全局变量,分别表示复数的实部和虚部,函数定义addition、product表示复数之和与之积,带参数无返回值
2.数据处理

在这里插入图片描述

1.2.2实验代码截图

在这里插入图片描述

1.2.3 造测试数据
输入数据输出数据
1 1 -2 3addition of complex is -1.000000+4.000000i
product of complex is -5.000000+1.000000i
1 2 -1 3addition of complex is 0.000000+5.000000i
product of complex is -7.000000+1.000000i
3 -2 1 1addition of complex is 4.000000±1.000000i
product of complex is 5.000000+1.000000i
2 2 2 3addition of complex is 4.000000+5.000000i
product of complex is -2.000000+10.000000i
1.2.4 PTA提交列表及说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交作业说明
1.编译错误:函数的原型声明格式处不是为 “void 函数名”,翻阅《C语言程序设计教程》后补充完整
2.编译错误:函数体结束没有返回值,请教同学后补充
3.编译错误:代码编译过程中的函数体没有根据题目输出格式添加回车换行符,细读几遍题目后补充
4.编译错误:复数的实部与虚部定义变量没有为单精度浮点型,而是为整型int,题目复数数值范围错误,请教同学后改正并百度查阅定义变量数据类型的区别范围整理

2.代码互评

(1)同学代码截图

在这里插入图片描述

自己代码截图

在这里插入图片描述
1.舒同学将数列进行函数定义,舒同学的代码思路更清晰一些,这点自己需要学习
2.舒同学关于第一项,第二项的输出都采用if选择结构,自己是进行if-else,这点自己的更简洁一些
3.舒同学关于除第一、第二两项的项数定义为f3,自己定义为f,差别不大,定义的都可以直接知意
4.自己定义了count标识符进行循环计数,舒同学没有,看个人习惯,没有影响

(2)同学代码截图

在这里插入图片描述

自己代码截图

在这里插入图片描述
1.舒同学关于复数实部、虚部的定义更复杂一些,自己直接定义为x、y,这点自己定义的更直接一些
2.自己将复数之和与之积分别进行了函数定义,去处理计算,舒同学直接在代码编译函数体处将二者统一计算,两种情况都可以
3.舒同学将题目中的x1,x2,y1,y2定义为双精度浮点型,自己定义为单精度浮点型,两者的占用内存空间等会不一样,对题目运算结果没有影响

3.学习总结(15分)

3.1 学习进度条(5分)
周/日期这周所花的时间代码行学到的知识点简历目前比较困惑的问题
第一周14h75计算机系统组成及工作原理,进位转换,机器数进位计数制的转换不熟练
第二周10h169基本数据类型,运算符与表达式,基本输入输出优先级顺序反应较迟钝
第三周18h150选择结构程序设计(if 、switch语句)else容易匹配混乱
第四周16h164循环结构程序设计(while、do-while、for语句),循环嵌套循环嵌套在编译中没有熟练掌握
第五周20h188一维数组在使用memset函数、memcpy函数来赋值没有理解
第六周18h225二维数组,字符串与数组给数组变量赋值,数组综合应用不会
第七周12h120函数的定义与调用,变量的作用域和生存期函数调用的数据类型不兼容,函数内部定义函数容易嵌套
3.2 累积代码行和博客字数(5分)

在这里插入图片描述

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

在这里插入图片描述

3.3.2 学习体会

1.这周的函数相关学习状态不是特别好,空余时间多刷点题,多学习一些优秀的代码
2.设计性代码编译不能够灵活处理,自主分析的能力有待提高,也有在和身边的会做的朋友请教
3.作业任务很急,要合理规范时间并执行,少陷入自我内耗
4.有向身边优秀的同学朋友请教学习C语言这些计算机语言的经验和建议,还是要多刷题,多见,多思
5.代码分析和编译程序的学习问题还是很多,执行力低
6.一定要自己动手敲代码,不然一直学不会,允许碰壁
7.关于一些自己遇到的问题一定要自己主动的去思考、查询,可以再寻求他人帮助,但一定要自己对题目有一定的影响

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信三班姚元敏202201120341

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值