• C语言I博客作业04


    1.作业头

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11490
    这个作业的目标 <通过代码的比较,让我们能够互相学习共同进步>
    学号 <20209136>

    一、本周教学内容&目标

    第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。

    二、本周作业头

    这个作业属于哪个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11490
    我在这个课程的目标是 <学会定义函数并熟练的调用函数来解决问题。 >
    这个作业在那个具体方面帮助我实现目标 <态度,专业技能还有逻辑思维。>
    参考文献 <C语言程序设计>

    三、本周作业

    1.PTA实验作业
    2.代码互评
    3.学习总结

    四、作业格式

    1.PTA实验作业
    从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:

    1.1题目名1:求组合数

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

    1.1.1数据处理

    介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
    数据表达:用到了product,result,m,n变量。product在定义函数中被定义为1。result的值由算术表达式fact(n)/(fact(m)*fact(n-m))赋值而来,其属于双精度浮点型变量。m,n的值通过调用输入函数获取用户输入的数值再进行赋值,其属于整型变量。
    数据处理:用到了算术表达式fact(n)/(fact(m)*fact(n-m)),赋值表达式product = product*x;用到了for循环结构。
    主调函数为main(),属于主函数。被调函数为fact(int n),属于用户定义函数。实参有product,属于双精度浮点型。形参有m,n属于整型,result属于双精度浮点型。
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    10 10 result = 1 从10个元素中取出10个进行组合只有一种结果
    6 8 result = 28 从8个元素中取出6个进行组合有28种结果
    7 12 result =792 从12个元素中取出7个进行组合有792种结果
    0 0 result = 1 0的阶乘为1所以输出结果为1
    -1 9 result = 0 -1为负数不满足题目要求,结果为0

    1.1.4 PTA提交列表及说明

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

    提交列表说明:

     1.编译错误:定义函数时多加了分号,重复定义变量,多加了括号。
     2.答案错误:多加了两个本题无需的判断,导致逻辑不清输出错误答案。
    

    1.2题目名2:本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower、上底半径为r_upper、高度为h的圆台的体积,函数类型是double。

    函数接口定义:
    double volume_tc(double r_lower, double r_upper, double h);
    其中r_lower是圆台的下底半径,r_upper是圆台的上底半径,h是圆台的高度,要求函数计算并返回圆台的体积。
    裁判测试程序样例:

    #include <stdio.h>
    #define PI 3.14159
    
    double volume_tc(double r_lower, double r_upper, double h);
    
    int main(void)
    {
        double h, r_lower, r_upper, v;
    
        scanf("%lf%lf%lf", &r_lower, &r_upper, &h);
        v = volume_tc(r_lower, r_upper, h);
        printf("%.2f
    ", v);
    
        return 0;
    /* 请在这里填写答案 */
    }
    

    1.2.1数据处理

    介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
    数据表达:用到了r_lower,r_upper,h,v,v1,PI变量。v的值由调用volume_tc(double _lower,double r_upper, double h)函数赋值而来,其属于双精度浮点型变量。r_lower,r_upper,h的值通过调用输入函数获取用户输入的数值再进行赋值,其属于双精度浮点型变量。v1的值由算术表达式(r_lower*r_lower+r_upper*r_upper+r_upper*r_lower)*h*PI/3赋值而来,其属于双精度浮点型变量。PI的值由宏定义而来,被定义为3.14159属于双精度浮点型。
    数据处理:用到了算术表达式(r_lower*r_lower+r_upper*r_upper+r_upper*r_lower)*h*PI/3,赋值表达式v1= volume_tc(double _lower,double r_upper, double h)。用到了顺序结构。
    主调函数为main(void),属于主函数。被调函数为volume_tc(double _lower,double r_upper, double h),属于用户定义函数。实参有PI,属于双精度浮点型。形参有r_lower,r_upper,h,v,v1都属于双精度浮点型。
    

    1.2.2实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    5 8 3 405.27 上底半径,下底半径,高依次为5,8,3计算圆台体积为405.27
    6 7 2 265.99 上底半径,下底半径,高依次为6,7,2计算圆台体积为265.99
    7 12 1 290.07 上底半径,下底半径,高依次为7,12,1计算圆台体积为290.07
    0.3 6 4 158.71 上底半径,下底半径,高依次为0.3,6,4计算圆台体积为158.71
    6 6 6 678.58 上底半径,下底半径,高依次为6,6,6,成为了一个圆柱,计算结果与用圆柱的体积公式来计算是一样的

    1.2.4 PTA提交列表及说明

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

    提交列表说明:

     1.编译错误:没有看清题目并理解题意,把已给出的代码也提交上去了,导致出现编译错误。
     2.答案错误:计算圆台的数学公式用错了,输出的结果是错误的答案。
    

    2.代码互评

    同学代码截图

    自己代码截图


    1.同学的代码比我的代码多定义了几个变量,计算麻烦一点,占用内存大。
    2.同学的代码先调用函数计算出值再把它赋值给已定义的变量,而我是直接调用函数进行计算。
    3.两者的方法都是调用函数来进行计算。

    同学代码截图

    自己代码截图


    1.同学代码非常简单,两个判断语句解决问题,但本题的意图是训练我们调用函数来解决问题。
    2.我的代码是按照题意来的,先自己定义好fact(int a,int b)比较两数大小的函数,然后再在后面的函数中调用。
    3.建议初学者还是一步一步来,如果技能已经很熟练了就可以写简单代码来节约时间。

    二.学习进度条

    周/日期 代码行 这周所花的时间 学到的知识点简介 目前比较疑惑的问题
    第八周10.19-10.25 480 23小时 调用输入输出函数,输出任意的字符串。 输入输出格式常没有与题目一致
    第九周10.26-11.1 599 33小时 数的类型,定义变量时要先考虑清楚。 数据溢出和负数的浮点型
    第十周11.2-11.8 519 27小时 for循环语句,if的判断语句。 多次循环与循环体中再添加变量赋值并再循环
    第十一周11.8-11.14 520 20小时 定义函数,调用函数 调用函数和定义函数易将变量弄混淆
    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    感悟:

    1.总的来说本次的作业量还是有那么大,其实说大也不大,主要看完成作业的质量。付出的时间与质量是成正比的。态度决定一切!这次作业我还是觉得收获很大,我对Markdown语法更加熟悉了,并且学会了如何定义一些函数并且正确的调用它来使得计算更加简便。而且在完成作业的过程中我还学习到了其他同学的优秀代码,学到了一些更好的编程技巧。希望在接下来的博客园的作业中,我能遇到越来越难的题目,毕竟凌晨三点都熬过来了,我无所畏惧!

    ​​

  • 相关阅读:
    设计一个栈,除了pop与push方法,还支持Min方法,可返回栈元素中的最小值,push、pop、min三个方法的时间复杂度必须是O(1)
    删除单向链表中间的某个节点,假定你只能访问该节点
    找出单向链表中倒数第K个节点
    关于ssh纠错笔记
    3维图像分割显示 标签: 图像分割level set3dmatlab 2015-04-16 17:59 228人阅读 评论(0)
    EM 算法 标签: clusteringalgorithm图像分割EM算法 2015-03-24 21:26 426人阅读 评论(0)
    kmeans算法分割图像 标签: kmeans图像分割算法 2015-03-23 20:02 509人阅读 评论(0)
    随机数
    IDL 日期时间函数整理
    显示程序运行时间_matlab
  • 原文地址:https://www.cnblogs.com/vatij/p/13972111.html
Copyright © 2020-2023  润新知