关于PTA中C语言习题中的错情分析和知识点遗漏

学完浙大翁老师的课程之后,觉得自己已经初窥门径,遂跑到PTA刷题测试,结果发现自己不仅错漏百出,有一些东西也确实没有掌握彻底,一些特殊算法和编程思路也缺乏头绪,在边刷边学中,自己对相关知识点也有了更新的认识,记录如下。(只是初级C语言的一些体会)

1.关于判断语句中的==

判断语句中的相等判断,容易错写为=,则判断语句变为赋值语句,恒为真或者假,大部分情况下编译不会出错,所以需要自己在书写过程中加以注意。例如:

7-20简单计算器

关于PTA中C语言习题中的错情分析和知识点遗漏

7-39龟兔赛跑中就出现此类错误。

关于PTA中C语言习题中的错情分析和知识点遗漏

2.关于输入输出的格式控制符和类型匹配

PTA中的GCC编译器对于数据类型要求比较严格,在有些情况下,对double型数据用%f进行输入输出会出现测试数据错误,个别题目修改数据为float即通过;double输出为int时一定进行强制类型转换,或者%.0lf;注意scanf的特殊匹配字段用法。例如:

7-18日期转换

关于PTA中C语言习题中的错情分析和知识点遗漏

7-15厘米换英寸

关于PTA中C语言习题中的错情分析和知识点遗漏

7-18求组合数

关于PTA中C语言习题中的错情分析和知识点遗漏

课堂内容,scanf读入GPS识别码

关于PTA中C语言习题中的错情分析和知识点遗漏

3.double类型数据的临界值及相等判断

double类型不能进行==的判断,会发生不确定的情况,在对[a,b]闭区间的边界值进行判断时,只能采用差小于误差的方法,或者在二者开区间之外再与区间内的确定int值进行比较大小来确定。进行双向判断时,如(0.9,1.1),切记统一系数,改为(0.9,2-0.9),如果直接用0.9和1.1可能出现不确定错误。

7-40你是不是太胖了

关于PTA中C语言习题中的错情分析和知识点遗漏

7-65消除-0.0

关于PTA中C语言习题中的错情分析和知识点遗漏

4.循环中的赋初值和退出问题

尽量不要在循环中定义变量,这样会导致运行速度和效率的下降,但是在循环体外定义的变量,如果每次循环都要从新来过的话,一定不要忘记在循环体内进行赋初值的操作,否则该变量会持续参加每一次循环,导致错误;在嵌套循环中,注意break的跳出范围,需要多层break。例如:

7-31掉入陷阱的数字

关于PTA中C语言习题中的错情分析和知识点遗漏

6-4查找子串

关于PTA中C语言习题中的错情分析和知识点遗漏

7-38支票面额

关于PTA中C语言习题中的错情分析和知识点遗漏

5.关于取余取模

在%取余进行范围判断或者获取区间数的过程中,一定一定注意判断0值的存在。例如:

7-7后天问题

关于PTA中C语言习题中的错情分析和知识点遗漏

6.关于算法

对于预测和成长性问题,可以先模拟出初始一些状态的数据,从中找出数学规律进行编程。例如:7-27兔子繁衍问题即为斐波那契数列。

对于阶段变化的状态模拟,可以参考面向对象编程思路。例如:龟兔赛跑和蠕虫爬井和切分表达式。

对于问题抽象和反向思考,可以模拟手工算法。例如:7-42整除光棍。

关于PTA中C语言习题中的错情分析和知识点遗漏

7-64最长对称子串,把每个元素看做对称中心进行测试,然后遍历。

关于PTA中C语言习题中的错情分析和知识点遗漏

对于任意步数的模拟操作,可以简化为操作一步,然后循环。例如:7-52数组循环右移

关于PTA中C语言习题中的错情分析和知识点遗漏

7.最后一定一定看清楚题意,尤其注意输入输出的空格、回车、格式控制等要求,切记切记。