(HDUACM2010版-09)筛选法及预处理课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
菜鸟之伤(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 Answer的错误提示,所以这种错误往往容易被误导成算法问题; 说明: 不仅菜鸟,就是大牛甚至大神,也常常犯这种错误,只是情况复杂些而已~ 菜鸟之伤(8) #includestdio.h void main() {int i,n,s; while(scanf(“%d”,n) ==1) { s=n/2*(n+1); printf(“%d\n\n”,s); } } 菜鸟之伤(8) 总结: 当两个整数进行运算的时候,运算结果一定还是整数,所以不要因为常规数学惯性思维的影响而认为结果可能为浮点数; 而不同数据类型一同运算的时候,运算结果的数据类型和相对复杂的类型一致(比如 整数+实数,结果类型是实数) 菜鸟之伤(9) #includestdio.h void main() { int i,n,s; while(scanf(“%d”,n) ==1) if(n%2==0) s=n/2*(n+1); else

文档评论(0)

manyu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档