C语言|博客作业04

这个作业属于哪个课程 C语言程序设计II
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11496
我在这个课程的目标是 学会自定义调用函数;回顾联系已学的内容;学习优秀代码,找出自己的不足
这个作业在那个具体方面帮助我实现目标 PTA实验作业;学习内容总结:代码互评
参考文献 C语言程序设计
学号 20209051

1.PTA实验作业

1.1害死人不偿命的(3n+1)猜想

卡拉兹(Callatz)猜想:

对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?

1.1.1 数据处理
数据表达:i,n都为整型,n直接输入数值,i初次赋值后循环累加
数据处理:
        表达式:n=(3.0*n+1)/2
        流程结构:while结构,if-else结构
函数参数:int main为主函数;i,n为实参            
1.1.2 实验代码截图

1.1.3 造测试数据
输入数据 输出数据 说明
3 5 自定义样例
1000 72 最大
1 0 最小
1.1.4 PTA提交列表及说明


提交列表说明:

部分正确:使用do—while语句时,scanf函数返回值被忽略
运行超时:将n赋值,无意义

1.2 求组合数

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

1.2.1 数据处理
数据表达:i,n,m都为整型,result,a,b,c为浮点型
数据处理:
        表达式:a=fact(n);b=fact(m);c=fact(n-m);product=product*i;
        流程结构:for语句循环结构
函数参数:int main (void)为主函数;fact (int n)为调用函数,函数类型为整型;i,a,b,c为实参,product为形参       
1.2.2 实验代码截图

1.2.3 造测试数据
输入数据 输出数据 说明
2 7 result=21 自定义样例
1 9 result=9 结果在double类型范围内
9 9 result=1 n=m时result最小
1.2.4 PTA提交列表及说明


提交列表说明:

编译错误:m,n输入的位置错误m>n,计算无意义;
         函数首部后加了“;”

2. 代码互评

  • 同学代码(1)

    (2)

  • 我的代码
  1. 和两位同学的代码比起来,他们的明显比我的更加简洁,我设置的变量比较多。
  2. 解决问题的逻辑没有太大的区别,但是我认为我多设定的变量,会使我的逻辑思路更加清晰,便于他人去阅读理解。
  3. 其次第一份代码中多使用了一次for语句,我觉得可以让代码更加简洁

3.学习总结

3.1 学习进度条
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第十一周/11.14 37h 475 while语句循环;自定义调用函数 调用函数;pta中scanf函数返回值忽略的问题
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
  • 这一周学了自定义和调用函数,但是我还是没有把形参和实参给捋清楚
  • 数学逻辑真的特别重要,在设计循环结构中,没有数学逻辑真的不行
  • 阅读理解能力真的也很重要,在PTA上做题的话真的需要很认真的把题目的意思给捋出来
  • scanf函数的返回值忽略问题是真的没有搞懂
原文地址:https://www.cnblogs.com/toubi/p/13961380.html