zoukankan      html  css  js  c++  java
  • C语言I博客作业04

    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9770
    我在这个课程的目标是 掌握各大数学函数、循环语句的调用及关系运算符的运用
    这个作业在那个具体方面帮助我实现目标 掌握使用for循环语句实现指定次数的循环程序设计
    参考文献 《C语言程序设计》

    一、PTA实验作业

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

    题目内容描述:本题要求对两个正整数m和n(m≤n)编写程序,计算序列和\(m^2+1/m+(m+1)^2​​+1/(m+1)+⋯+n^2​​+1/n\)
    输入格式:输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
    输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

    1.1.1数据处理

    数据表达:在调入输出函数之后,该题要用到幂函数,所以加入#include<math.h>.再用int定义两个整型变量m,n。用double定义双精度浮点型变量sum。(sum表示累加和。)再调用scanf()函数输入m,n。然后使用for语句执行循环,最后输出sum的值。
    数据处理:在进入循环之前设置相关变量的初值,置sum为0,以保证sum在0的基础上累加。然后用for语句实现循环,进行累加时需要注意运用幂函数pow(x,n)的形式来表达\(m^2+1/m\)

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    1 2 6.500000 较小的数
    4 4 16.250000 m=n
    10 17 1500.610584 较大的数
    3 20 2867.097740 m<<n

    1.1.4 PTA提交列表及说明

    1.格式错误:调用scanf函数输入m,n时两个%d中间没打空格,导致输入的多个数据之间没有间隔,在两个%d中添加一个空格解决问题。
    2.多种错误:将for语句中的循环体语句中幂函数表达为pow(m,2)+1/m,把1换成1.0解决问题。
    3.答案错误:输出sum的值时=两边没有打空格,导致与题目所要求的格式不同,直接复制题目给出的输出格式中的sum = 解决问题。

    1.2 求交错序列前N项和

    题目内容描述:本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
    输入格式:输入在一行中给出一个正整数N。
    输出格式:在一行中输出部分和的值,结果保留三位小数

    1.2.1 数据处理

    数据表达:求前n项和,意味着循环n次,每次累加1项。先用int定义三个整型变量i,flag,n。(i表示循环的次数。flag表示第i项的符号,初始为正。)再用double定义双精度浮点型变量sum。(变量sum存放累加和。)调用scanf()语句输入n。然后使用for语句执行循环,最后输出sum的值。
    数据处理:在执行循环之前设置相关变量的初值,即flag=1,sum=0。找出序列中每一项分子与分母的规律,得出公式。在每次循环执行flag=-flag可以实现正负交替变化

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    3 0.933 较小的数
    5 0.917 较小奇数
    31 0.897 较大奇数
    8 0.377 较小偶数
    40 0.390 较大偶数
    100 0.391 较大的数

    1.2.4 PTA提交列表及说明

    1.答案错误:在设置循环体语句中的表达公式时,分母没有用括号括起来,导致整个公式不能计算,在分母上添加括号解决问题。
    2.答案错误:调用scanf()函数时在%和d中间打了一个空格,导致格式控制说明错误,删去空格解决问题。
    3.答案错误:在设置循环体语句中的表达公式时,打成flag*1,导致输出的结果会是整数,将1改成1.0解决问题。
    4.答案错误:输出时使用了sum=,通过查看输出样例,直接输出保留三位小数的值即可,删去sum=解决问题。

    二、代码互评

    题目:7-2 求奇数分之一序列前N项和

    同学代码截图

    自己代码截图

    相同之处

    • 用int定义了整型变量n和i,i表示循环的次数。
    • 用double定义双精度浮点型变量sum。
    • 都运用了for语句执行循环。

    不同之处

    • 她在用double定义双精度浮点型变量sum时就置sum为0,我是在用double定义sum之后再置sum为0。 设置的循环步长的表达式为i=i+2,我的是i++。
    • 她定义的i表示分母,在设置for语句中的表达式为i=i+2,即每次循环时分母递增2.我用int定义了整型变量denominator,denominator表示每一项的分母,初始为1,对应第一项分母为1,每次循环分母都递增2,即执行denominator=denominator+2.

    题目:7-3 求简单交错序列前N项和

    同学代码截图

    自己代码截图

    相同之处

    • 用int定义了整型变量n和i,i表示循环的次数。
    • 用double定义双精度浮点型变量sum。
    • 都运用了for语句执行循环。

    不同之处

    • 她在写循环体语句时,对i进行了取余,运用if-else语句,如果余数为0,本次循环需要变号为负才能继续累加;我是在每次循环执行flag=-flag来实现正负交替。

    三、学习总结

    3.1 学习进度条

    这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周 6小时 29行 对C语言、markdown语法,编程有了初步的认识 对编程一窍不通,只会照着书上打
    第二周 8小时 19行 学会如何提问,安装MinGW-w64并用它编译C程序 markdown语法掌握不熟练
    第三周 10小时 96行 关系运算、if-else语句、格式化输入语句scanf(),以及常用的数学库函数 对编程中各大语句的运用不熟悉
    第四周 13小时 93行 for循环语句实现指定次数的循环程序设计 运用for语句时因为总会出现很多错误

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    本周主要学习了for循环语句实现指定次数的循环程序设计。for语句的一般形式为:
    for (表达式1;表达式2;表达式3)
    循环体语句

    • 两个分号分隔三个表达式,但for的后面没有分号,因为for与其后面的循环体语句合起来作为一条完整的语句。
    • 如果循环体语句由多条语句组成,必须用大括号把它们括起来,变成一条复合语句。
    • i++是用来设置循环步长的表达式,一定不能漏。
    • 每次循环执行flag=-flag可以实现正负交替变化
    • 变量denominator表示每一项的分母。变量item定义为浮点型变量,表示第i项。

    3.3.2 学习体会

    通过开学以来每周一次的博客,对markdown语法已经越来越熟悉。写一篇博客,不但在于内容充实,同时排版也要让人看起来赏心悦目。本周学习了for循环语句实现指定次数的循环程序设计。打PTA时经常犯很多错误,但是犯的错越多,我收获的也就越多。犯错或者不懂的话就去网络或书本上寻找问题的答案,或者是向同学求助,但是一定要锻炼自己独立思考的能力,才能在每一次作业中进步。

  • 相关阅读:
    Java通过socket和DTU,RTU连接工业传感器通信
    没有远程桌面授权服务器可以提供许可证 相关,注册表项获得权限方法
    freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况
    自学it吧论坛
    安全学习地址
    服务器zfs文件系统修复过程记录
    第1年10月11日 android canvas
    第1年10月9日 swiftui
    第1年9月28日 Android 4.4以后,浏览器内核采用的chromium,可以支持webrtc
    第1年9月19日 ios librtmp
  • 原文地址:https://www.cnblogs.com/shenxinglou/p/11692164.html
Copyright © 2011-2022 走看看