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、老师课堂也讲的非常的细致,让我们都能够把知识点都理解到位,我相信每天进步一点点,会有自己意想不到的收获。