C语言I博客作业04
| 这个作业属于哪个课程 | C语言程序设计II |
| 这个作业要求在哪里 | 作业要求 |
| 我在这个课程的目标是 | 熟练使用C语言 |
| 这个作业在那个具体方面帮助我实现目标 | 对函数的定义和调用有更深的了解,学习其他同学代码的优秀之处 |
| 参考文献 | C语言程序设计 |
| 学号 | 20209017 |
1.PTA实验作业(20分/题)
1.1求幂之和
题目内容:

1.1.1数据处理
数据表达:用了i,n,result变量,这些变量的值是定义计算赋值来的,类型是整型与双精度浮点型。
数据处理:数据用到数学表达式与条件表达式。 流程结构用到循环结构。
函数参数:主调函数名称为main函数,无形参,实参为i,n,result。
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 5 | result = 62 | 同sample等价 |
| 1 | result = 2 | 最小n值 |
| 10 | result = 2046 | 最大n值 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

1.答案错误:输出的应该是result而我写的是sum。
2.编译错误:在将sum改为result时没有完全将sum改为result。
1.2 求组合数
题目内容:

1.2.1数据处理
数据表达:用了i,n,m,result变量,这些变量的值是定义计算赋值来的,类型是整型与双精度浮点型。
数据处理:数据用到数学表达式与条件表达式。 流程结构用到循环结构与顺序结构。
函数参数:主调函数名称为main函数,被调函数名称为fact(n),被调函数的类型为双精度浮点型(double),形参为n,类型为整型,实参为m,n,result,类型分别为整型与双精度浮点型。
1.2.2实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2 7 | result = 21 | 同sample,m严格小于n/2 |
| 3 6 | result = 20 | m==n/2 |
| 2 2 | result = 1 | n==m |
| 9 10 | result = 10 | m大于n/2,且n-m==1 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

1.编译错误:在定义的fact(n)函数中写了scnaf("%d",&n)。
2.答案错误:在写result = fact(n)/(fact(m)*fact(n-m));时少写了一个小括号。
2.代码互评
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
2.1.1题目内容

2.1.2同学代码

2.1.3自己代码

2.1.4不同之处
1.同学在写计算圆台的数学表达式时,是将PI的值3.1415926直接代入,而我是直接写的PI。我认为直接写PI的值可读性没有那么强。
2.同学的数学表达式是将括号放在最前面,而我是将括号放在最后。
2.2.1题目内容

2.2.2同学代码

2.2.3自己代码

2.2.4不同之处
1.同学的程序的主函数放在了最前面,而我的是自己定义的函数在前面。我认为将主函数放在前面可以让别人更直观地感受到这个程序的作用。
2.同学将主函数放在前面是在主函数前面还有一句double fact(int n),并且在这一句后有分号。
3.我在定义的同时给product赋值,而罗丹妮同学是定义后再赋值。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
|---|---|---|---|---|
| 第一周 | 0天 | 0行 | C语言知识的大纲 | 目前没有问题 |
| 第二周 | 3天 | 约20行 | Hello world编程Markdown语法 | 目前没有问题 |
| 第三周 | 5天 | 约80行 | 华氏度与摄氏度的转换、调试 | 对应该如何调试还不太懂 |
| 第四周 | 5天 | 约90行 | if-else语句 | PTA作业在scanf语句处有警告,该如何修改 |
| 第五周 | 5天 | 约125行 | for语句 | 对for语句的使用不够熟练 |
| 第六周 | 五天 | 104 | 如何定义函数 | 对定义函数的操作不过熟练 |
3.2 累积代码行和博客字数
| 时间 | 博客字数 | 代码行数 |
|---|---|---|
| 第一周 | 0 | 0 |
| 第二周 | 808 | 20 |
| 第三周 | 808 | 100 |
| 第四周 | 1426 | 190 |
| 第五周 | 2968 | 315 |
| 第六周 | 4144 | 409 |
![]() |
3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。
- 收获:1.这周的学习知道了C语言中一些细节的重要性,例如在本周实验课上的sum = sum + flog * 1.0 / n中不能将1.0写为1,否则计算结果只有整数。
2.在同学的帮助下,从调试与定义函数时的不知所措转变为自己可以独立完成,虽然不是很熟练。 - 疑惑:1.在本次作业中,PTA编程题的第三题,如果将主函数写在前面,那么最开始定义的函数后要加分号才正确的原因,但书上并没有写分号。
2.对实参与形参的定义的区分不是很明白。


浙公网安备 33010602011771号