C博客作业01--分支,顺序结构

时间:2022-06-01 19:32:43

本章学习总结(2分)

1.1思维导图

C博客作业01--分支,顺序结构

1.2本章学习体会及代码量学习体会

1.2.1学习体会

  • 本周初次接触C语言,一开始难度较大,很多代码都看不懂,书里面的章节要看很多遍。开始编写代码时也遇到很多困难,一开始没有电脑,用手机打代码非常低效,很多时候一个小时仅仅能做完PTA的两道题目,而且没有调试工具,题目很多没有编译运行过就上交,出现过很多编译错误。为了弥补在效率上的不足,经常在早上六点起来写代码。
  • 我的学习方法主要是看书,延长学习时间。军训过后体力有所消耗,学习起来有些乏力,上课经常打瞌睡,学习状态不是很好。很多时候明明晚上睡了8小时第二天还是觉得很疲惫,接下来要认真分析原因了。估计是一开始不适应。
  • 老师上课的进度很快而且不是照搬课本,经常讲一些课本里面没有的知识,比如精度问题,if关于0和1的判断,二进制,数据在电脑中的储存。开始很不适应,很多知识因为书本没有,不好理解,希望老师推荐一本比较好的C语言的参考书,帮助我们课后学习。课堂派里面的作业很有代表,有很多书本里面没有涉及的变化,很多时候我认为正确的答案不一定是运行结果,机器理解的语言和我理解的有偏差。
  • 现在学习的知识还比较简单,老师教学的知识基本理解。但是在上机操作这块我掌握的还比较薄弱,第一点原因是接触得少,原来没有电脑,在实践方面不行。第二点原因是在调试方面的知识掌握不牢固,因为书上没有编写,不好复习。第三点原因是我本人打字较慢,这点需要提升。第四点原因是我对C语言的语法知识还不是特别熟练,经常会有编译错误。
  • 助教比较认真负责,是一位亲切的学长。他指出我在注释方面的不足,教我如何注释。

1.2.2代码累计

C博客作业01--分支,顺序结构

2.PTA总分(2分)

2.1截图PTA中顺序结构、分支结构的排名得分

C博客作业01--分支,顺序结构

C博客作业01--分支,顺序结构

2.2我的总分:

第一章顺序结构:100分
第二章分支结构:125分
总分:225分

PTA实验作业(6分)

3.1PTA题目1]

计算分段函数f(x)如果x不等于0,f(x)等于1/x。如果x等于0,f(x)等于0。输入x,必须以f(x)= result输出,x与result都保留一位小数。

3.1.1算法分析

  • 1.用double定义变量x和结果result。
  • 2.x是输入数据。输入x。
  • 3使用if-else语句。
  • 4.如果x不等于0,result=1/x,输出“f(x)= result”
  • 5.其他情况,输出“f(x)= 0”
  • 6.x和result保留一位小数。

3.1.2代码截图

C博客作业01--分支,顺序结构

3.1.3测试数据

C博客作业01--分支,顺序结构

3.1.4PTA提交列表及说明

C博客作业01--分支,顺序结构

  • Q1: 没有认真看题目,出现答案错误。
  • A1:注意到题目要求,把变量y改为result。
  • Q2:开始编辑程序时没有电脑,不能对程序进行编译运行和调试,直接就上交导致有很多编译错误。
  • A2:上交了很多次,都是编译错误,一开始以为是分号用成了中文符的分号,不断改正不断提交,到后面才发现是定义变量时的result写成reult。有时候为了发现一个小错误,要花费很多时间。
  • ps:这道题是简单题,我确做错了那么多次,这说明我还不熟练,需要多看书多练习。

3.2PTA题目2

输入一个百位数,输出其百位、十位和个位,并用逗号隔开。

3.2.1算法分析

  • 1.用int定义数字number,百位hundred,十位ten,个位one。
  • 2.输入数字number
  • 3.通过number/100得出百位hundred。
  • 4.通过number/10%10得出十位ten。
  • 5.通过number%10得出个位one。
  • 6.输出hundred,ten,one的值中间用逗号隔开。

3.2.2代码截图

C博客作业01--分支,顺序结构

3.2.3测试数据

C博客作业01--分支,顺序结构

3.2.4 PTA提交列表及说明

C博客作业01--分支,顺序结构

  • ps:这一题比较简单,属于顺序结构。
  • Q1:C语言的语法不熟练,产生编辑错误。
  • A1:使用scanf()函数时忘记加&。
  • A3:后来重新编辑,虽然答案正确,但是变量名不规范。把number,hundred,ten,one作为变量。

3.3PTA题目3

输入三角形的三条边a,b,c计算并输出面积和周长。三角形面积计算公式:area=√​s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。保证三角形的两边之和大于第三边。如果输入的边能构成一个三角形,则在一行内,按照“area = 面积; perimeter = 周长”
的格式输出 ,保留两位小数。否则,输出“These sides do not correspond to a valid triangle”。

3.3.1 算法分析

  • 1.需要调用数学函数#include<math.h>计算根号。
  • 2.用int定义三角形的三边a,b,c。用double定义面积area和周长perimeter。
  • 3.输入三角形的三边a,b,c。
  • 4.通过加法运算,算出三角形的周长。
  • 5.判断三边是否成三角形,如果成三角形,用公式s=1.0(a+b+c)/2算出s,1.0是为了把数据调整为浮点型数据。使用pow函数算出三角形面积 area=pow(s(s-a)(s-b)(s-c),0.5) ,输出面积和周长,保留两位小数。
  • 6.如果不成三角形则输出“These sides do not correspond to a valid triangle”

3.3.2代码截图

C博客作业01--分支,顺序结构

3.3.3测试数据

C博客作业01--分支,顺序结构

3.3.4 PTA提交列表及说明

C博客作业01--分支,顺序结构
C博客作业01--分支,顺序结构

  • ps:这题属于令我抓狂的一题,做了很多遍依然不得要领,在 同学的帮助下最后解决问题。
  • Q1:思维较混乱,产生编辑错误。
  • A1:误删了一个中括号,经过检查增加一个中括号。
  • Q2:没有注意数据类型,产生答案错误。
  • A2:发现整数除以整数还是整数,所以在s的公式中乘了1.0调整数据类型为浮点型数据。
  • Q3:逻辑判断不明确,编写程序不认真,导致答案部分正确。
  • A3:经过检查发现自己对是否成三角形的逻辑判断不清,不清楚成三角形所要具备的条件。经过修改把||改为了&&,同时三个条件并在一起,保证接下来判断的 一定是三角形。之后发现当不成三角形时答案依旧是错的,经过检查,原来是“These sides do not correspond to a valid triangle”这句话写错了。

4.点评同学博客

C博客作业01--分支,顺序结构