C语言I博客作业04

这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业要求的链接
这个作业的目标 练习本周所学,模仿编程,学习模仿他人代码的优点,总结本次学习
学号 20209014

1.PTA实验作业

1.1 求组合数:本题要求编写程序,根据公式​​C n,m=n!/(m!*(n-m)!)算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

1.1.1数据处理

  • 数据表达:运用了double来定义了result与sum,int来定义了m,n,i等变量,而m,n是通过scanf来赋值。

  • 数据处理:表达式:运用了关系表达式,赋值表达式,算术表达式,流程结构:顺序结构与循环结构。

  • 函数参数:主调函数int main(),被调函数double fact(int n)类型为浮点型,实参为result类型为浮点型,形参为n,m,i,sum类型为整型

1.1.3 造测试数据

输入数据 输出数据 说明
2 3 result=3 取简单数字验算程序
3 2 result=0 尝试取m>n时是否有值
8 10 result=45 取复杂数字验证程序

1.1.4 PTA提交列表及说明

  • 1. 编译错误:因为return的时候没有返回sum,导致多次编译错误。

——解决方法:将return 0改为return sum。

  • 2. 部分正确:粗心将n-m写成了m-n

——解决方法:反复查看代码,最终将其揪出。

1.2 求幂之和:本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。

1.2.1 数据处理

  • 数据表达:该程序只运用int整型,定义了i,sum,product,n等变量,而n是通过scanf赋值。

  • 数据处理:表达式:运用了关系表达式,赋值表达式,算术表达式,流程结构:顺序结构与循环结构。

  • 函数参数:主调函数int main(),被调函数double fact(int n)类型也为整型,n与product为实参,而i,sum等为形参。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
2 result=6 取简单数字验算程序
3 result=14 多次验证程序的可行性
10 result=2046 取复杂数字验证程序

1.2.4 PTA提交列表及说明

  • 这个题目做得很成功,在吸取前面的教训以后,几乎是一气呵成。

2.代码互评

同学代码

自己代码

  • 比较:1. 对方的代码还可以再简单一点,我觉得不需要再定义x,y,z了,而我直接使用fact()解决了中间变量。

2. 对方的代码是使用的声明再在后续进行编写,而我是直接准备好函数,把主函数放在了后面。

3. 对方的浮点型使用较多,而我整型使用较多。

同学代码

自己代码

  • 对比:1. 对方的代码思路与我不太一样,对方直接使用for循环,而我定义一个函数,因此对方的代码比我要简单。

2. 对方的格式可以再进一步改善,如多加空格,能够使代码更清晰。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第8周/10.19~10.25 12h 280 预习了一下课本,了解代码的样子,并学习了基本代码
第9周/10.26~11.1 15h 300 了解了基本的常量与变量,与数据类型 对于细节有许多不到位,还有对许多知识完全不了解
第10周/11.2~11.6 20h 350 if语句和for循环语句的运用 就像今天的作业一样,看不懂复杂代码,只能在简单中窥探
第11周/11.7~11.14 16h 410 自定义函数的使用 无,但学习态度方面越来越被动

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

总结:1. 这几周的学习不太到位,导致之前的预习已经用光,因此要从现在起,在学习上多用点功。

2. 学习上的小毛病还是没改得彻底,总会有遗漏,不是这里符号打错了,就是那里变量没搞清。

3. 题目还做得不足,下周主要是预习与PTA上作业的练习,使自己大脑有一些固定的思路,只有固定了一些基本用法,才能灵活变通各种题目。

原文地址:https://www.cnblogs.com/cony1/p/13975137.html