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