C语言I博客作业04

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11500
我在这个课程的目标是 对函数的定义和调用有初步的认识,能模仿编程。
这个作业在那个具体方面帮助我实现目标 完成PTA上的作业的过程中、写编程总结
参考文献 C语言程序设计、百度

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

1.1 求组合数

题目内容描述:

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

   输入格式:
   输入在一行中给出两个正整数m和n(m≤n),以空格分隔。

   输出格式:
   按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

   输入样例:
   2 7
   输出样例:
   result = 21

1.1.1数据处理

   数据表达:所用变量:n、m、i(整型(int)),product、result(双精度浮点型(double));这些变量的值的来源:n和m是自定义的,i是每循环一次后在原有的基础上加1,product = product * i,result = fact (n) / (fact (m) * fact (n - m))。
   数据处理:数据用到的表达式: product = product * i,result = fact (n) / (fact (m) * fact (n - m));流程结构:循环结构。
   **函数参数:主调函数:int main();被调函数:fact();被调函数的类型:双精度浮点型(double);实参:i、n、m、n-m(整型);形参:n、m(整型)。**

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2 7 return = 21 m<n
3 9 return = 84 m<n
6 9 return = 84 m<n
6 6 return = 1 m=n
0 0 return = 1 m=n=0
8 6 return = 0 m>n
3 -6 return = 0 m>n,n<0
-5 3 return = 0 m<n,m<0

1.1.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

   1.编译错误:多了一个分号;
     解决办法:将多余分号删除。

1.2 求幂之和

题目内容描述:
本题要求编写程序,计算sum=({2}^{1}+{2}^{2}+{2}^{3}+⋯+{2}^{n})。可以调用pow函数求幂。

   输入格式:
   输入在一行中给出正整数n(≤10)。

   输出格式:
   按照格式“result = 计算结果”输出。

   输入样例:
   5
   输出样例:
   result = 62

1.2.1 数据处理

   数据表达:所用变量:i、n、sum(整型(int));这些变量的值的来源:n是自定义的,i是每循环一次后在原有的基础上加1,对sum赋值,然后在循环中计算sum = sum + pow(2,i)。
   数据处理:数据用到的表达式: sum = sum + pow(2,i);流程结构:循环结构。
   **函数参数:主调函数:int main();被调函数:pow();被调函数的类型:整型(int);实参:i,n,sum(整型);形参:n(整型)。**

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
5 result = 62 0<n<10
10 result = 2046 n=10
-5 result = 0 n<0
0 result = 0 n=0
13 result = 16382 n>10

1.2.4 PTA提交列表及说明


提交列表说明:

   1.编译错误:将i++打成了n++;
     解决办法:将n改为i。

2.代码互评(5分)

找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。

同学代码截图

自己代码截图

 1、第一份的代码与我的不同之处:代码的上部分内容与下部分内容所放位置不同,而且他还用了if-else语句说明正整数m要小于等于正整数n,他所写的代码比我自己所写的更严谨;
 2、第二份的代码与我的不同之处:他写的代码所用的表达式更多,在输出所需值时,直接在printf中计算得出,而我的直接用result = fact (n) / (fact (m) * fact (n - m))计算得出;
 3、第一份代码与第二份代码的不同之处:第一份代码用if-else语句,用一个表达式直接计算出所需结果,第二份代码先用多个表达式计算出所需计算的小部分,再将其合并计算得出所需结果。

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第三周 4天 156 for语句 在综合表达式中,不知道为什么不能用"[ ]"
第四周 2天 169 函数的定义和调用 函数的定义和调用的格式不太懂

3.2 累积代码行和博客字数(5分)

时间 博客字数 代码行数
第一周 638 12
第二周 562 97
第三周 2058 156
第四周 1737 169

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

3.3.1 学习内容总结

3.3.2 学习体会

1、本周的学习了函数的调用,写的代码有一些地方与以前不一样了,还不太习惯;
2、通过搜索资料弄明白作业中不懂的地方,又学到了新知识;
3、通过比较自己与同学所写的代码,学习他人的优点;
4、不理解的地方:函数的定义与调用的格式不太懂;
5、对于不熟的地方多加练习。

原文地址:https://www.cnblogs.com/zhge/p/13972469.html