C语言I博客作业04

一.作业头

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 作业04
我在这个课程的目标是 理解用户自定义函数每一步的意义,能够掌握用户自定义函数
这个作业在那个具体方面帮助我实现目标 在本次编程题第二题中,能够让我自己尝试,自己调试,从而明白各部分的意义
参考文献 《C Primer Plus》
学号 20209032

二.本周作业

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

1.1 求组合数

  • 本题要求编写程序,根据公式​​C n,m=n!/(m!*(n-m)!)算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.1.1数据处理
  数据表达:使用了n,m,result,sum,x;其中在主函数里面的n与m是由scanf定义变量值,在自定义函数中的n是由主函数中输入的值决定,x的值是在自定义函数中一开始就被赋值了,随后在for的循环语句中逐渐自增1,直到不满足条件,sum是有自定义函数中通过计算赋值得出;其中m,n,x都为整型,result与sum为双精度浮点型。
  数据处理:数据用到的表达式为累乘;流程结构为for的循环结构
  函数参数:主调函数的名称:main(),被调函数的名称:fact();被调函数的类型:双精度浮点型;实参的名称:n,m,实参的类型:整型;形参的名称:n,形参的类型:整型;
1.1.2实验代码截图

1.1.3 造测试数据
输入数据 输出数据 说明
3 5 result = 10 第一次测试为了方便自己计算其正确性,设置了一个较小的数进行输入与输出
3 3 result = 1 当n与m相等时,结果是否正确
5 3 result = 0 当输入的m大于n时结果会是什么
99 100 result = 100 当输入的数字够大时,结果的正确性,同时为了方便自己验算
1.1.4 PTA提交列表及说明

  1、部分正确:这个问题,我一开始就是在想,会不会跟之前一样呢,有些变量是不是不可以用整型呢,所以就一遍一遍的更改他的变量类型。
  2、编程错误:是自己在visual studio中测试完,自己确定没有问题后,直接复制到pta中,出现的。仔细看在pta里面的代码就发现犯一样的错误,即忘记删除scanf后的_s。

1.2使用函数求圆台体积

  • 本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower、上底半径为r_upper、高度为h的圆台的体积,函数类型是double。
1.2.1 数据处理
  数据表达:使用了r_lower,r_upper,h,v;其中在主函数里面的r_lower,r_upper,h是由scanf定义变量值,v是由计算式赋值计算得出,在用户自定义函数中r_lower,r_upper,h这三个变量由主函数中输入的数一起输出到自定义函数中,v是由最后的计算式赋值得出;r_lower,r_upper,h,v都为双精度浮点型。
  数据处理:数据用到的表达式为圆台的体积的数学计算公式;流程结构为顺序结构。
  函数参数:主调函数的名称:main(),被调函数的名称:volume_tc();被调函数的类型:双精度浮点型;实参的名称:r_lower,r_upper,h,实参的类型:双精度浮点型;形参的名称:r_lower,r_upper,h;形参的类型:双精度浮点型。
1.2.2 实验代码截图

1.2.3 造测试数据
输入数据 输出数据 说明
3.5 6.5 7 566.27 因为是半径,所以输入小数,看是否对小数的测试正确
20 50 90 367566.03 当数据过大时,看是不是计算的数据与实际相符,会不会数据溢出
6 6 7 791.68 当输入的两个底相等也就是圆柱体,他的答案会不会与圆柱体计算公式计算出来的结果相同
0.11 0.22 3 0.27 当输入的数字足够小时,也而不是特别小时,看他的最后的结果与手机算的结果的差距
1.2.4 PTA提交列表及说明

  1、答案错误:没有看清题目,题目定义的变量是半径,而不是面积。上网搜了表达式后,就与答案接近了。
  2、答案错误:一开始由于自己没有找到数学中的圆周率,所以自己输入了3.1415926,发现每一次都是答案错误,最后听他们问同学的时候听到了,前面题目就已经定义了PI为我要用的圆周率。

2.代码互评(5分)

2.1 同学代码截图

2.2 自己代码截图

2.3 区别

  • 同学1在定义变量时与我不同,我一般自己的变量都在第一行与第二行将相同的变量定义在一起。这个样子会更加美观,也会比较简单吧。但是这一周的学习中,我上网搜到了我更加喜欢的方法,就是当自己需要变量时,直接定义并且同时赋值。
  • 同学2的代码看上去就特别美观,跟我码在一起的代码不同,他会将定义与输入等分为几个小的区域,而我的就在一起,并且他还会注意符号与变量之间打入空格,虽然visual studio 会自动生成,但是这是个好习惯,我会渐渐向他学习的。加油!!!
  • 同学2做到了彭老师一直在说的一件事,那就是自己定义变量时,要做到见名识意。这样会方便其他人理解这个代码。但是我并没有做到,还是喜欢用一个字母进行定义,以后要改变这种习惯,向这位同学靠齐!!!!

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
6 10.8~10.11 2h 51 打印“ hello world”
7 10.12~10.18 8h 70 各个符号代表的是什么的基础知识 还有许多符号分辨不清
8 10.19~10.25 10h 93 数学函数的调用 对于大佬前面的哪些头文件的调用类型看不懂
9 10.26~11.1 10h 154 if-else语句
10 11.2~11.6 10h 348 for语句 较为复杂的循环还搞不清循环几次,循环内容
11 10.2~10.13 8h 360 用户自定义函数的使用,理解与明白函数的定义与调用的区别 自定义函数中如果变量与主函数的变量相同,为什么计算机会分清这两个变量是谁?想不清楚为什么会自己跳动到相应的地点再进行运算,是有什么相应的规则让他自己跳动吗?

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

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

3.3.1 学习内容总结

3.3.2 学习体会
  • 这一周学习的学习内容主要是用户自定义函数比较让人思考,我在上课的时候,没怎么想清楚,下课就一直在想这个事情,比较烦躁,想不清楚为什么会自己跳动?
  • 感觉C语言的学习还是要钻研,上课要是没听懂的话,正不如是“实践是检验真理的唯一标准”,要自己动手才能用自己的理解方式去明白这个条件究竟是什么,这条语句究竟有什么作用。
  • 看见其他同学在自学,我却没有自学,要开始制定自己的目标,要往前学,上课才不会蒙蔽。
原文地址:https://www.cnblogs.com/mujinyao/p/13964384.html