C语言I博客作业03

C语言程序设计 2020计算机3班
作业的要求 作业要求
作业的目标 完成PTA作业,学习优秀代码并应用于实际,做出总结
学号 20209003

1.PTA实验作业

从PTA题目集中选出3个你最满意的题目完成.

1.1 求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。

  • 1.1.1 实验代码截图

  • 1.1.2 数据处理

    • 数据表达:
      • 变量及其类型:
        • 整型变量:N。
        • 浮点型变量:sum,S。
      • 变量由来:通过题目已知定义。
    • 数据处理:
      • 表达式:sum=0,S<=N,S++,sum=sum+1.0/(3S-2)pow(-1,S-1)。
      • 流程结构:循环结构。
  • 1.1.3 PTA提交列表及说明

    • Q1:格式错误。
    • A1: = 的两边都要空格。
    • Q2:答案错误。
    • A2:输出语句要放在循环语句之外。
    • Q3:运行超时。
    • A3:只需要三个变量。

1.2 求分数序列前N项和

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

  • 1.2.1 实验代码截图

  • 1.2.2 数据处理

    • 数据表达:
      • 变量及其类型:
        • 整型变量:i,N。
        • 浮点型变量:a,b,sum,middle。
      • 变量由来:通过题目已知与需求定义。
    • 数据处理:
      • 表达式:a=2,b=1,sum=0,i=1,i<=N,i++,sum=sum+a/b,middle=a,a=a+b,b=middle。
      • 流程结构:循环结构。
  • 1.2.3 PTA提交列表及说明

    • Q1:考虑到a赋了一个新的值,b就无法再赋值原来的a,但是不知道该怎么办。
    • A1:多设一个中间变量middle,将原来的a值先存入middle即可。
    • Q2:最终的答案不对。
    • A2:变量a,b和middle要定义为浮点型变量。因为当i=20时,a,b和middle这三个变量会超过整型变量的范围。

1.3 求平方根序列前N项和

本题要求编写程序,计算平方根序列√1+√​2+√​3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

  • 1.3.1 实验代码截图

  • 1.3.2 数据处理

    • 数据表达:
      • 变量及其类型:
        • 整型变量:a,N。
        • 浮点型变量:sum。
      • 变量由来:通过题目已知与需求定义。
    • 数据处理:
      • 表达式:sum=0,a=1,a<=N,a++,sum=sum+sqrt(a)。
      • 流程结构:循环结构。
  • 1.3.3 PTA提交列表及说明

    • Q1:格式错误。
    • A1:= 两边要根据题目要求打空格。
    • Q2:编译错误。
    • A2:表达式sum=0后忘记打分号了。

2.阅读代码

  • Specialized Four-Digit Number
  • 理解:使用了cstdio,通过查证,是C++的写法。定义了a,b两个变量,运用了while循环结构,达到将十进制转化为十二进制和十六进制的目的。再运用for循环结构和分支结构,筛选出从2992到9999中符合题意的数字。
  • 优点及可学习点:简单明了,没有多余无用的变量,缩短了不必要的运行时间。表达式写法简便,直接写成 ret += a % b, a /= b 。

3.学习总结

3.1 学习进度条

周\日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
5\11.1-11.7 约8小时 约140行 for语句 输出%d与%6.1lf之间不能有空格的原因
4\10.18-10.24 约6小时 约105行 if-else语句 不能理解求个位数用n%10,十位数n/10%10等 (已解决)

3.2 累积代码行和累积博客字数

3.3 学习感悟

  • 对于本周的学习,事实上,感觉自己是不太主动的,这导致我在实验课时手忙脚乱,还为了一个求余的 % 磨蹭了很久。最后百度了解要打两个百分号才能得到我想要的结果。
  • 所以,以后要做到复习预习一把抓,学习要靠自己,不能等着别人来喂。学会借助书籍自己往前摸索。
posted @ 2020-11-06 21:54  藐致  阅读(217)  评论(6编辑  收藏  举报