刷题小tips

自从认真做题以后,结合自己的做题体验以及网上前人的总结经验贴,罗列下列的小建议:

1.为了避免每一次都要重复输入测试数据的麻烦,利用输入重定向文件

我是只把标准输入stdin重定位到in.txt,然后标准输出stdout依旧是输出到屏幕

所以就加了#include<stdio.h>           freopen("in.txt","r",stdin);         fclose(stdin);

当要提交的时候记得把首尾加的这两行代码注释掉或者删掉!!

这里顺便提一下我的傻吊经历,我一开始在路径下建了一个叫in.txt的文件,结果发现输入根本没有效果,最后发现是这一台电脑的文件名显示效果坑了我一把

这是一台电脑根本不显示后缀,就是我命名为in.txt的文件他的完全名是in.txt.txt,所以当我把名字改回in后就正常了

 

2.使用scanf,printf会快一点,数据量大时用cout,cin会慢一点点,虽然大多数时候都是没有什么讲究的,我本人一直以来也更喜欢简洁的cout、cin,但是多学一点也没有什么坏处

scanf的时候如果不是数组类型的话,变量名前不要忘记加&,不然有可能就是segment fault

 

3.如果申请的是数组的话,申请空间最好比要求的大一点,特别是如果是字符串类型的话char a[n],n一定要比读取的空间大1,要给末尾'/0'预留位置

4.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!如果在代码里面把标准输出输入流重定向了,在最后一定一定要把那两行代码删掉,不要像我一样没删掉,然后出现段错误,还花了好长时间检查是不是数组越界,scanf是不是少写&,痛心疾首!!!!!!!!!!!!!!

5.还是在循环的时候,那些数量之间的关系要理清楚,特别是什么0开始还是1开始

6.结构体内部数据是没有初始化的,可能会出现一堆垃圾数据(像下图一样),所以尽量还是要自己初始化一下

 

 使用struct的构造函数来初始化,用memset(object,0,sizeof(object))

7.string末尾追加字符

str+='c';  str=str+'c';      str=""+'c';

8.0==false  非0(包含负数)==true

 

转载于:https://www.cnblogs.com/chuan-chuan/p/11430610.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值