C语言入门陷阱:菜鸟常犯的10个筛选法错误

需积分: 50 3 下载量 58 浏览量 更新于2024-08-20 收藏 517KB PPT 举报
本资源是一份关于C语言编程中的"菜鸟之伤"教程,主要针对ACM程序设计初学者易犯的常见错误展开讲解。首先,作者以一个简单的"筛选法"示例开始,如代码`#include<stdio.h> void main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); }`,展示了如何通过`scanf`函数读取两个整数并计算它们的和。这个基础的程序可能看起来很简单,但对于新手来说,它揭示了几个关键问题。 1. 多组数据处理:程序只能处理单组输入,无法处理多组数据,这是许多菜鸟常犯的错误。解决方法是使用循环结构,如`while`或`for`,如`while(scanf("%d%d",&a,&b)!=EOF)`来处理连续输入。 2. 文件结束符EOF:`EOF`值不是0,而是负数。在`while(scanf(…)!=0)`的条件判断中,如果不清楚这一点,可能会导致死循环,影响程序性能。正确的做法是检查是否达到文件结束,而不是单纯检查是否等于0。 3. 分号的遗漏:在循环条件后误加分号可能导致循环体只执行一次,而不是预期的多次。尤其是在处理多组数据时,去掉分号至关重要。 4. 输入结束后的处理:使用`!=EOF`而非`!=0`作为循环结束条件,可以避免因误判EOF而导致的死循环问题。 这些错误虽然基础,但在实际编程中却可能引发意想不到的麻烦。通过学习和理解这些"菜鸟之伤",ACM新手能够逐步提升编程技能,避免在比赛中因这些问题而失分。刘春英老师来自杭州电子科技大学,邮箱acm@hdu.edu.cn,这表明该教程可能是杭州电子科技大学ACM课程的一部分,旨在帮助学生们在编程道路上快速成长。