- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CSUST筛选法及预处理(附菜鸟的23个经典错误)-谭明棋
* * 菜鸟之伤(15) 刚才程序的改进版: int n,a,b,i; char p; scanf(%d,n); getchar(); for (i=0;in;i++) { scanf(%c%d%d,p,a,b); if( ...) …… } 是否还有问题?如何修改? * * 菜鸟之伤(15) 总结:字符和数字的混合输入带来的问题,也是一个常常困扰使用C语言编程的同学的经典问题,关键就是程序未能及时接收回车符,而误将回车当作下一组数据的首字母,你可以通过添加一句getchar(); 轻松解决该问题。 说明:菜鸟的经典错误,如果之前没有遇到过,很难一下子反应过来,当然,遇到一次以后就不成为问题了~ * * 菜鸟之伤(1) 总结: 程序不能处理多组数据的问题是最常见的入门问题,只要掌握几种常见的类型,就可以轻松掌握了,具体处理方法曾在第一次课件有详细描述,这里省略了~ * * 菜鸟之伤(2) #includestdio.h void main() { int a,b; while(scanf(“%d%d”,a,b)!=0) printf(“%d\n”,a+b); } * * 菜鸟之伤(2) 总结:文件结束符EOF的值是-1而不是0,所以while(scanf(…)!=0)常常会因为死循环而造成TLE,这个必须牢记。 说明:不仅仅菜鸟,很多老鸟也常常因为不注意这点而犯错误,而且还常常因为想不到会犯这种低级错误而想不到原因。 * * 菜鸟之伤(3) #includestdio.h void main() { int a,b; while(scanf(“%d%d”,a,b)!=EOF); printf(“%d\n”,a+b); } * * 菜鸟之伤(3) 总结:while 或者 for循环的条件外面误加了分号,编译不影响,但是结果循环体没有真正得到多次执行; 说明:菜鸟常犯的错误,往往因为编译能通过而不能迅速察觉,尤其比赛中~ 提醒:当你将scanf();语句加上while循环以处理多组数据问题的时候尤其注意——因为之前有分号,很容易忘记去掉! * * 菜鸟之伤(4) #includestdio.h void main() { int a,b; while(scanf(“%d%d”,a,b) =2) printf(“%d\n”,a+b); } * * 菜鸟之伤(4) 总结: C语言中,赋值符号=和判断是否相等的逻辑符号==具有完全不同的含义,往往因为我们的习惯问题,在编程中误将判断是否相等的逻辑符号写成赋值符号=。同样的,这种失误也会因为不影响编译而影响查错的时间。 说明:菜鸟常犯的错误,但是有过几次教训就会牢记了,呵呵~ * * 以1001 Sum Problem为例 Sample Input 1 100 Sample Output 1 5050 * * 菜鸟之伤(5) #includestdio.h void main() { int i,n,s; while(scanf(“%d”,n) ==1) { for(i=1;i=n;i++) s+=i; printf(“%d\n\n”,s); } } * * 菜鸟之伤(5) 总结: 忘记变量的初始化是典型的菜鸟问题,不必紧张,多经历几次就牢记了~ 说明:普通变量的初始化还比较容易查找,而用来保存计算结果的数组的初始化更是容易忘记! * * 菜鸟之伤(6) #includestdio.h void main() { int i,n,s=0; while(scanf(“%d”,n) ==1) { for(i=1;i=n;i++) s+=i; printf(“%d\n\n”,s); } } * * 菜鸟之伤(6) 总结:变量初始化放在循环外,是一个典型的ACM初级错误,因为ACM赛题的多组测试特性,如果不能在循环内初始化,将只能确保第一组数据没问题,而很多入门者习惯只测试一组数据,很容易忽略这个问题。 说明:菜鸟常犯的错误,关键是要理解为什么这样会有问题,真正理解后,修改也就不难了。 * * 菜鸟之伤(7) #includestdio.h void main() {int i,n,s; while(scanf(“%d”,n) ==1) { s=n*(n+1)/2; printf(“%d\n\n”,s); } } * * 菜鸟之伤(7) 总结: 数组越界还能在提交后收到Runtime Error的信息反馈,而运算中的数据溢出则往往只能收到Wrong
您可能关注的文档
- CIF案例.ppt
- Chapt1.2.ppt
- CMS3.1使用手册.doc
- CMOS集成电路设计-拉扎维4差分放大器.ppt
- cheng6城市规模分布.ppt
- 百分数的应用四(利率)解读.ppt
- 参同契译文讲解.doc
- 北京市西城区2016年初三化学上学期期末考试题及答案讲解.doc
- CNC精铣中心自动机说明书V1.doc
- colors颜色单词.ppt
- 单元四 气象万千多绚丽【B卷·真题卷】-七年级地理上册单元速记·巧练()(解析版)_1.docx
- 3.3.4 整式的加减——整式的加减运算(6大题型提分练)(解析版)_1.docx
- 3.3.2 整式的加减——合并同类项(4大题型提分练)(解析版)_1.docx
- 1.1 认识化学科学(分层练习)(解析版)_1.docx
- 2.2.1 数轴:数轴的概念与画法、用数轴表示数(4大题型提分练)(解析版)_1.docx
- 2024—2025学年四川省古蔺县蔺阳中学高二上学期期中考试数学试卷.doc
- 2024—2025学年四川省成都市成飞中学高二上学期十月月考数学试卷.doc
- 2.8 直角三角形全等的判定(6大题型提分练)(原卷版)_1.docx
- 2.3 氧气的制备(第一课时)(分层练习)(原卷版)_1.docx
- 2.5.1 有理数的乘法与除法:乘法、乘法运算律(4大题型提分练)(解析版)_1.docx
文档评论(0)