C语言I博客作业03

C语言程序设计 2020级计科三班
作业的要求 https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11454
作业的目标 对所写代码进行分析,总结以及本周的学习感悟
学号 20209028

1.1、求N分之一序列前N项和
计算序列 1 + 1/2 + 1/3 + ... 的前N项之和,给出一个正整数N,在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。

1.1.1、实验代码截图
C语言I博客作业03
1.1.2、数据处理

  • 该代码运用了整型变量N,i;双精度浮点型变量sum;
  • 变量的值通过定义,赋值运算,算术运算得来,类型是整型和浮点型;
  • 该代码的数据运用了初值表达式,条件表达式,步长表达式,流程结构为循环结构。

1.1.3、PTA提交列表及说明
C语言I博客作业03

  • Q1:对于该代码中的i的理解有点偏差,"sum=sum+1.0/i"写成sum=sum+1.0/i+1。
  • A1:经过查阅资料,前面写的循环体语句中已经对i的值进行变化,所以不需要在算术运算中加1。
  • Q2:对代码进行运行时输出的结果正确,但提交结果显示格式错误。
  • A2:仔细阅读程序样例后发现错误并改正。

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

1.2.1、实验代码截图
C语言I博客作业03

1.2.2、数据处理

  • 该代码运用了整型变量denominator,flag,i,n,变量denominator表示第i项的分母,flag表示第i项的符号;双精度浮点型变量item,sum;
  • 变量的值通过定义,赋值运算,算术运算得来,类型是整型和浮点型;
  • 该代码的数据运用了初值表达式,条件表达式,步长表达式,流程结构为循环结构。

1.2.3、PTA提交列表及说明
C语言I博客作业03

  • Q1:对于正负符号的改变不知道如何去编写代码。
  • A1:通过翻阅课本,了解了flag的含义及用法:flag表示第i项的符号,初值为正,每次循环执行flag=-flag可实现正负交替变化。
  • Q2:忽略了题目中所讲的精确到小数点后三位。
  • A2:经过检查后发现错误并加以改正。

1.3、生成3的乘方表
输入一个非负整数n,生成一张3的乘方表,输出输30~3n的值,给出一个非负整数n,可调用幂函数计算3的乘方,按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

1.3.1、实验代码截图
C语言I博客作业03

1.3.2、数据处理

  • 该代码运用了整型变量n,i;双精度浮点型变量power;
  • 变量的值通过定义,赋值运算,算术运算得来,类型是整型和浮点型;
  • 该代码的数据运用了初值表达式,条件表达式,步长表达式,流程结构为循环结构。

1.2.3、PTA提交列表及说明
C语言I博客作业03

  • Q1:调用printf()函数输出结果的语句未放在for语句中导致调试只出现了一个结果。
  • A1:题目中所给的输出样例为i=3,所以调试应该有四个结果,出现这种结果的原因是输出结果的语句未放入循环体结构中。

2.阅读代码

题目:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
C语言I博客作业03

可学习之处:

  • fun()是一个函数,其中int fun(int m,int n)是函数fun()的首部;第一个int是函数的类型,第二、三个int是形参m,n的数据类型。
  • 该代码运用if-else语句和while语句。while语句是计算机的一种基本循环模式,当满足条件时进入循环,不满足则跳出,和for语句相似。

疑问:

  • 不能理解return fun(m,n)这个部分,通过查找资料,发现该代码和闭包有点关系,但还不能理解它代表的含义。

3.1、学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
1/11-1/18 8小时 26行 阶乘、Hello Wolld!、数字,英文字母、汉族的输出、Markdown语法
2/23-2/30 10小时 110行 华氏摄氏度转摄氏度、计算平均分
3/1-3/8 14小时 252行 计算分段函数(if-else语句)、循环语句(for语句)、指定次数的循环程序设计 对于某些题目的数学知识转换还不是很熟悉

3.2累积代码行和博客字数
C语言I博客作业03

3.3、学习感悟

  • 相对于前两周而言,我感觉比以前进步了很多,学会了更多的新知识,不在像之前一样毛手毛脚,写代码会犯很多低级错误,更加像一个专业人士。但在这周的学习中还是存在着许多问题,例如:懂得调试但不知道如何去运用调试找出问题所在。
  • 感悟:要用心对待每一段代码,不可以忽视每一个小符号,理解好每一个语句所代表的含义加以运用;
  • 新想法:每天坚持写代码,保证一周的代码量,学好每一个知识点,充实大学生活。