这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11489 |
我在这个课程的目标是 | 想要学好C语言,为以后的学习打下基础 |
这个作业在那方面帮助我实现目标 | 调用函数,了解别人的代码对自己进行改变,为以后写编写程序打下基础 |
参考文献 | c语言程序设计,C Primer Plus 第六版 |
学号 | 20209108 |
1.1题目名1使用函数求圆台体积
本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower、上底半径为r_upper、高度为h的圆台的体积,函数类型是double。
1.1.1数据处理
- 数据表达:用了PI,h,r_lower,r_upper,v等变量,是double型,变量是运用了赋值法得来的。
- 数据处理: result = PIh(r_lowerr_lower + r_upperr_upper + r_lower*r_upper)/3;顺序结构,赋值法和自定义函数。
- 函数参数:主调函数#include<stdio.h>,被调函数double volume_tc(double r_lower, double r_upper, double h);被调函数为double型,实参为double h, r_lower, r_upper, 形参为double v,PI。
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10,30,5 | result=6806.78 | 小于10000.00 |
20,40,10 | result=29321.51 | 大于10000.00 |
30,60,5 | result=32986.69 | 大于10000.00 |
25,30,5 | result=11911.86 | 大于10000.00 |
15,30,5 | result=8246.67 | 小于10000.00 |
1.1.4PTA提交列表说明
- 编译错误:
<1> double volume_tc(double r_lower, double r_upper, double h)后面多加个;。
<2>没有看清题目要求,直接写了全部代码,然后怎么都不正确。 - 解决办法:
<1>是去掉;
<2>把自己上面多写的代码删掉,也希望借此改正自己不好好看题的坏习惯。
1.2题目名2求组合数
内容描述:本题要求编写程序,根据公式C=n!/m!(n−m)!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.2.1数据处理
- 数据处理:用了n,m,i,product;其中n,m为整型变量,i为循环变量,product为双精度浮点型变量。通过赋值和循环得到的。
- 数据处理:
<1>表达式:result = fact(n)/(fact(m)fact(n-m)); product = producti;
<2>流程结构:循环结构,顺序结构。 - 函数参数:主调函数#include<stdio.h>,被调函数double fact(int n);被调函数为double型;实参为int i,n,m,double result;形参double
product。
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2,7 | 21 | 大于10 |
3,5 | 10 | 等于10 |
3,3 | 1 | 等于1 |
3,9 | 84 | 大于10 |
4,6 | 15 | 大于10 |
1.2.4PTA提交列表及说明
- 编译错误
<1>result = fact(n)/(fact(m)*fact(n-m))少了一个括号。加上一个括号。
<2>double fact(int n);少了一个;。加上一个分号。 - 答案错误:
<1>scanf ("%d %d", &m, &n)把m,n的值搞反了。解决办法是把&n,&m改为&m,&n。
2.代码互评
- 章绮同学的作业
- 我的代码
- <1>同学的代码只用到了一次循环,而我的代码用了两次循环,少了一次循环就比我的简洁明了,更是少了繁琐,而我的{}里面的循环可以完全不用要。
<2>同学的代码给没有给result赋原始值,我的代码就给result赋值了,虽然她的很简洁省去了很多不必的步骤,很优秀。但作为初学者的我认为我的代码是我的思路,更容易让我自己理解明白,以至于以后能够更深入的思考。
*同学的代码
- 我的代码
<1>同学的代码设置了很多变量我觉得没有必要要,我本人觉得有点复杂,但是也非常优秀的。
<2>还多给result赋值,我们可能因为自身不同习惯也是不同的,思路也是不一样的,同时我们也是一样的。
<3>我也觉得他的代码很容易让人理解,更能深入思考。
学习总结
- 3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
11.8—11.14 | 14小时 | 235 | 调用函数,生成乘方表和阶乘等 | 对函数的调用还不是很明白 |
11.1—11.6 | 10小时 | 195 | 学到了循环结构,掌握了for循环语句等 | 有时格式不知道怎么解决 |
10.25—10.31 | 13小时 | 175 | 华氏温度的求法等 | 表达式的应用 |
10.18—10.24 | 15小时 | 40 | Hello World!等简单句 | 无 |
- 3.2累积代码行和博客字数。
- 3.3学习内容总结和感悟。
<1>通过一个月的学习我们学会了编程Hello World!等简单的句子,然后学了华氏温度的转换,分支结构if,else。for的循环结构,这个星期学了阶乘和调用函数等知识点。
<2>一个月走过来,我慢慢的适应,不管怎样都要提前预习更重要的是态度,我们要自己学会探索,学会独立思考,善于发现别人代码的美,也希望未来我可以越来越好。 - 3.3.1
- 3.3.2
<1>通过这么久的学习,我发现学的内容越来越深了,我也意识到要提前预习。要独立思考,学会凭借自己的努力来获取成就感超级好。
<2>其实通过学习,我收获了好多朋友,我们会一起探讨,一起相互促进,朝着同一个目标前进。
<3>我也很喜欢老师的教学方式,先自己独立思考,然后在学习,效果加倍,加油。