• C语言I博客作业04


    这个作业属于哪个课程 C语言程序设计I
    这个作业要求在哪里 作业链接
    我在这个课程的目标是 熟悉掌握for语句
    这个作业在那个具体方面帮助我实现目标 PTA的for语句练习及博客园作业展示
    参考文献 作业评价标准

    1、PTA实验作业

    1.1 求平方与倒数序列的部分和

    问题描述:本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m​2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。

    1.1.1 数据处理

    • 数据表达:使用了m、n、sum和item,分别代表m,n两个变量、序列和和第i项,前两个类型为整型变量,后两个为双精度浮点型变量。
    • 数据处理:使用int与double定义变量,scanf来输入数据,if-else进行分支来处理不同数据,for语句进行循环计算, 最后用printf输出数据。其中还使用了数学函数pow来计算幂函数,表达式为item=pow(m,2)+1.0/m和sum=sum+item

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    1 10 387.928968 前十个数据之和——运行图
    5 10 355.845635 题目样例——运行图
    1 100 338355.187378 前一百个数据之和——运行图

    1.1.4 PTA提交列表及说明

    • 1、多种错误:输入数据时两个数字间没有空格,分子没有用1.0,多个语句少了分号。
    • 2、答案错误:没有注意要保留六位小数。
    • 3、部分正确:没有考虑到m=n的情况。
    • 3、部分正确:考虑到了m=n的情况,但是for语句的第一个表达式写的m=1,应该改为m=m。

    1.2 求交错序列前N项和

    问题描述:本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。

    1.2.1 数据处理

    • 数据表达:使用了denominator表示分母,N表示输入的数据,flag为自定义的变量用来表示每一项的符号,sum表示所求和的值,item表示第i项,i表示循环次数,numerator表示分母。
    • 数据处理:同样使用int与double定义变量,scanf来输入数据,for语句进行循环计算, 最后用printf输出数据。用到的表达式有:
      item=flag·numerator/denominator,sum=sum+item,
      flag=-flag,denominator=denominator+2,
      numerator=numerator+1.0

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    0 0.000 最小偶数——运行图
    1 1.000 最小奇数——运行图
    8 0.377 偶数——运行图
    11 0.904 奇数——运行图
    5 0.917 题目样例——运行图

    1.2.4 PTA提交列表及说明

    • 1、编译错误:numerator作为分子,应该设为浮点型以确保item为浮点型变量。
    • 2、编译错误:numerator单词打错了。
    • 3、部分正确:flag前漏了负号。

    2、代码互评

    C语言第三次作业代码比较——参考同学——图片链接
    图一是同学的,图二是我的。

    • 1、变量定义,输入和输入都是一样的,但我是先进行求余运算,再用if-else对余数x进行关系运算,所用运算符为“与”(&&),从而得出结果;而该同学是直接在if-else语句中使用逻辑运算符“或”(||)来对初始数据进行关系运算。
    • 2、同意题目,答案一致,过程却不一样,不管是哪种方法都有它的优点和缺陷;我先进行求余运算能使过程更加简洁明了,但多加入了一个变量x,更容易出现错误;该同学没有加入新的变量使得出现错误的几率变小,题目准确度更高,但打的代码更多,耗费时间更多一些。
    • 3、学以致用,寻找更简单准确的方法一直是我的目标。

    3、学习总结

    3.1 学习进度条

    日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
    10/7--10/13 9+个小时 100+ 编写if-else语句,算术运算与赋值运算规则等 while语句的使用以及适用范围
    10/14--10/20 8+个小时 190+ for的使用,if-else与for的组合使用 while与for的区别

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    • 1、for语句:由三个表达式确定执行循环次数以及是否执行下一条语句,循环体语句过多时要用{}括在一起。
    • 2、逻辑运算符:&&和||等均为逻辑运算符,与其他运算符的优先级关系为——! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。

    3.3.2 学习体会

    答:这周学习相对轻松,因为之前有提前自学循环语句,所以for语句学起来很容易上手,要说难点的话,我目前觉得最大的难点是关于while和for的区别吧,共同点是两者都用于循环结构,但其区别我到现在还没搞清楚。C语言学起来并不是像传闻中那样十分枯燥无味,当你投入到其中时,你可能只会因为解决了一道难题,发现了一个技巧而开心半天,从而想更上一层楼,那种成就感是只有亲身体会才能理解的。

  • 相关阅读:
    BZOJ 2574: [Poi1999]Store-Keeper
    BZOJ 1024: [SCOI2009]生日快乐
    BZOJ 2541: [Ctsc2000]冰原探险
    hihoCoder 1303 数论六·模线性方程组
    Codeforces 710 D. Two Arithmetic Progressions
    BZOJ 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
    ZJOI2014 2048
    51Nod 1766 树上的最远点对
    Codeforces 727 F. Polycarp's problems
    BZOJ 3736: [Pa2013]Karty
  • 原文地址:https://www.cnblogs.com/solokill/p/11685201.html
Copyright © 2020-2023  润新知