C语言|博客作业04

这个作业属于哪个课程 <C语言程序设计II>
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11500
我在这个课程的目标是 <对pta上题目的认识更加透彻,了解代码,学习其他同学的优秀代码,反思自己的学习情况>
这个作业在那个具体方面帮助我实现目标 <让我们对pta上的作业进行分析与说明,代码互评以及最后的学习总结>
参考文献 <C语言程序设计,C语言程序设计实验与习题指导>

1.PTA实验作业(20分/题)

1.1 求组合数

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

1.1.1 数据处理

数据表达:整数类型int;字符型函数表达scanf()、printf()、双精度浮点型double
数据处理:for循环结构(i=1;i<=n;i++)、赋值表达式:product=product*i
函数参数:其中main(){}是主调函数,result=fact(n)/(fact(n-m)*fact(m))调用了被调函数fact,其类型是整数类型;实参int m,n;形参product;
类型是整数类型

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2 2 1 m=n
2 8 28 m<n
3 4 4 m<n
6 5 0 m>n
8 3 0 m>n

1.1.4 PTA提交列表及说明


1.编译错误:首先我令阶乘product的初值为0了
2.编译错误:由于粗心使得第19行缺少一个分号
3.答案错误:在算术表达式中分母部分未用括号括起来,导致算法出错

1.2求幂之和

本题要求编写程序,计算sum=2的一次方+2的二次方+2的三次方+···+2的n次方。可以调用pow函数求幂。

1.2.1 数据处理

`数据表达:双精度浮点型double; 整数类型int;字符型函数表达scanf()、printf()
数据处理:赋值表达式sum=sum+pow(2,i);for循环结构(i=1;i<=n;i++)
函数参数:主调函数main(),被调函数pow函数,被调函数类型为整型,实参int i,n;形参sum.类型是整数类型

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
6 126 2的1次幂的2的6次幂之和为126
8 510 2的1次幂的2的8次幂之和为510
9 1022 2的1次幂的2的9次幂之和为1022
10 2046 2的1次幂的2的10次幂之和为2046

1.2.4 PTA提交列表及说明


1.编译错误:忘记在scanf括号语句中加上&
2.格式错误:输出的等号两边未空格,与输出样例不一样

2.代码互评(5分)

同学代码截图


自己代码截图


同学代码与自己代码不同之处:
1、再求组合数中,同学一开始便执行了for循环结构,后使用了if-else语句。我一开始定义的是m,n,后用自定义变量product用于存放结果,
最后再执行for循环结构。
2、再求幂之和中,同学未调用pow函数,但其中含有if语句,而我调用了pow函数求幂,两种算术表达式也存在差异,但两者的代码结构都思路清晰

3.学习总结(15分)

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
第三周 三天 130 使用for循环语句实现循环程序的设计 有时程序中表达式写不对而出错
第四周 三天 135 调用和定义函数 对调用函数不是很清楚以及如何去定义函数

3.2 累积代码行和博客字数


3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

1、在本周的学习过程中,对C语言的编程以及博客的书写有了进一步的认识与了解,在本周我们学习了函数的调用与定义,更加清楚的了解到函数是如何被运用到程序当中的,对自己所写的每一个程序都有了更加清晰的认识。
2、这次的博客作业一如既往的多,但是相比于上次,更加的得心应手。上次学会了运用excel表格去做折线图,这次学会了运用相应的思维导图软件去做思维导图,对我来说是一份大的收获。
3、老师课堂也讲的非常的细致,让我们都能够把知识点都理解到位,我相信每天进步一点点,会有自己意想不到的收获。

posted @ 2020-11-14 16:27  花开宿语  阅读(220)  评论(8编辑  收藏  举报