­

C语言I博客作业04

  • 2020 年 11 月 11 日
  • 筆記
这个作业属于哪个课程 C语言程序设计ll
这个作业要求在哪里 //edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11491
这个作业的目标 学会自己定义函数,并使用函数解决问题
这个作业在哪个具体方面帮助我实现目标 使我可以使用我想要的函数去解决问题,给了我出发的方向
参考文献 百度和同学的博客

1.作业

1.1题目1
用函数编程计算两个整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。

输入格式:
用户从键盘任意输入的两个整数,以空格分隔。

输出格式:
两个整数中的最大值
1.1.1 数据处理

数据表达:我用到了变量有x,y,c。x和y通过scanf函数输入,c只是一个一个工具。类型为整型。
数据处理:表达式有c=max(x,y)  c=x   c=y  。流程结构简单分支结构。
**函数参数:主调函数为int main(),被调函数为int max(int x,int y),被调函数为整型。实参与形参为整型,形参实参名称分别int x;int y为x,y。**

1.1.2 实验代码截图

1.1.3 造测试数据

输入 输出
3 4 4
5 6 6
10 9 9
0 1 1

1.1.4 PTA提交列表及说明

说明我在提交前出现的错误
1.编译错误:在scanf函数中忘记使用&符号

1.2 题目2
本题要求编写程序,根据公式C
​n
​m
​​ =
​m!(n−m)!

​n!
​​ 算出从n个不同元素中取出m个元素(m≤n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

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

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

数据处理:使用的变量有m,s,n,i,a,m,n直接通过scanf函数输入。s,a,i赋值。m,n,i为整型,其他为浮点型。
数据表达:表达式有s=fact(n) /(fact(m) * fact(n-m) )。流程结构为循序结构。
**函数参数:主函数int main()。被调函数double fact(int n),类型为浮点型。实参和形参名称,类型分别为fact(n) /(fact(m) * fact(n-m) 浮点型;int main() 整型。

1.2.2 实验代码截图

1.2.3 造测试数据

输入 输出
2 4 result=6
3 8 result=56
2 9 result=36

1.2.4 PTA提交列表及说明

提交一次正确以下是在提交前出现的错误
1.编译错误:在函数定义时double fact(int n)后面出现了分号。
2.格式错误:输出答案的result=;=号两边没有打空格符号,不符合输出格式
3.答案错误:公式写错了,把n-m写反了

2.代码互评(5分)

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

同学代码截图

自己代码截图

1,2,3方式罗列2份代码不同地方。

  • 1.前面一位同学使用了if-else语句,另一位只使用了if,而我的也使用了if-else
  • 2.有一位同学没有使用自定义函数,而我们使用了自定义函数
  • 3.每一份代码都有自己的思路和优点,都可以互相借鉴,相互学习,取长补短。

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
11/11.9—11.11 6h 300 学会自定义函数 思路不够清楚

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

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

3.3.2 学习体会

  • 确实正如老师所说,现在接触的东西,难度慢慢地在加深。这次我们初步接触自定义函数,我感觉我还有很多不足的地方
  • 在做题之前,我建议可以先把题目看懂,先理清思路和逻辑关系,不要盲目下手做题,这样往往出现错误
  • 我们在遇到不会的概念时,可以多通过大学慕课学习
    请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。