关于类型
CodeBlocks使用mingw编译器,long long类型输出表示为
"%I64d"
,且__int64
合法;EOJ使用的似乎是g++的linux版本编译器,long long类型输出表示为
"%lld"
,且__int64
不合法。long double类型是合法的,但是在mingw编译器中不能格式化输入/输出。
"%llf"
,"%Lf"
这些都不行。
关于ILE
Idleness Limit Exceeded 常见于交互题。
在使用多个输出函数连续输出时,有可能产生输出错误,因为在上一个数据还在输出缓冲区中时,下一个printf
就把另一个数据加入输出缓冲区,冲掉了原来的数据,造成输出错误。
解决方案:
1. 在printf
后加上fflush(stdout)
;
2. 使用cout<<endl
输出似乎效果等同?
关于其它注意事项
- 变量/数组的初始化
scanf
后回车符的吸收gets
的不安全性getline
多次使用注意添加str = "\n"; getline(cin, str);
- EOJ编译器对
getchar(); ... gets();
的支持似乎不太好? - 经常把==写成=…
- 尽量避免使用非c标准库函数,如itoa, strlwr, strupr之类
- RTE主要原因:数组越界、指针越界、除以0、栈溢出……
- 逐步补充……