ACM编程入门:菜鸟常犯的21个错误与筛选法解析
需积分: 50 108 浏览量
更新于2024-08-20
收藏 517KB PPT 举报
"本资源主要讲解了ACM竞赛中新手常犯的21个经典错误,特别是在C语言编程中,特别提到了筛选法作为解决部分问题的策略。"
在这次的第十二讲中,主题聚焦于"菜鸟之伤——ACM菜鸟的21个经典错误",其中穿插了一个附录——筛选法。ACM(国际大学生程序设计竞赛)是一项对参赛者编程技能和算法理解能力要求极高的比赛,对于新手来说,往往会在一些基础问题上犯错。讲师通过具体的例子来指出这些错误,并提供了解决方案。
首先,错误示例1展示了一个无法处理多组输入数据的问题。在处理这类问题时,通常需要读取直至文件结束,而初学者可能忽略这一点。给出的代码片段虽然可以计算两数之和,但只能处理单组输入。正确的做法是使用一个循环结构,如示例2所示,通过检查`scanf()`函数的返回值是否为EOF(文件结束符)来判断是否还有更多输入。
错误示例2中,尽管使用了`while(scanf(...) != 0)`的循环结构,但由于EOF的值是-1而非0,可能导致无限循环,从而导致超时错误(Time Limit Exceeded, TLE)。这是许多选手容易忽视的一个细节,即使是有经验的程序员也可能因此出错。
错误示例3涉及的是语法层面的问题,即在while或for循环条件后意外添加了分号,这会导致循环体只执行一次。尽管这样的错误不会导致编译错误,但在运行时会引发预期之外的行为。为了避免这种情况,程序员应当养成良好的代码审查习惯,尤其是在处理循环结构时。
筛选法是一种常用的算法,特别是在数据处理和排序问题中。虽然资源中并未详细解释筛选法,但通常它指的是诸如埃拉托斯特尼筛法(Sieve of Eratosthenes)之类的算法,用于找出给定范围内的所有素数。在ACM竞赛中,筛选法可能会被用来优化某些数学或数论问题的解决方案,提高算法效率。
这一讲强调了在ACM竞赛编程中常见的错误,如处理多组数据、理解EOF、注意循环语法以及合理运用算法策略等,这些都是新手在学习C语言编程时应特别关注的要点。通过识别并改正这些错误,新手可以提高自己的编程技能和解决问题的能力。
248 浏览量
132 浏览量
2011-10-22 上传
2023-02-27 上传
2012-12-20 上传
2012-03-29 上传
2013-12-01 上传
101 浏览量
2023-02-27 上传
清风杏田家居
- 粉丝: 22
- 资源: 2万+
最新资源
- Spring Live (160页)
- iBatis Developer's Guide中文版
- Spring iBatis Learning Notes
- Verilog Hardware Description Language
- 《linux完全命令手册》(Linux Complete Command Reference)
- 数控机床RS232通讯接口及参数介绍
- 多型与虚拟.pdf 中文版
- WindowsCE内核简介
- 经典C源程序100例
- 初学者c51学习教程
- GoF 23种设计模式解析附C++实现源码.pdf
- c++编程手册,题目
- Windows 2000 安全配置
- 中南大学微机原理课件
- UML参考手册 UML Reference
- jsp跳转的五种方式