【持续更新】机试遇到的一些坑~

  1. ======渣渣楼主遇到的很多低级错误======
  2. 遇到超时限制,首先考虑把cin cout改成scanf printf
  3. 注意getchar()吃掉回车
  4. 注意输入  输出格式 如空格、字母大小写、换行等。
  5. 能用double 就不用float
  6. 赋值为=,判断为==
  7. INT_MAX代表int中的无穷
  8. 有时要定义bool visit[maxn]={false}数组,但是记得每次输入之后都要初始化---->memset(visit,false,sizeof(visit));
  9. 字符数组char s[100] 只能用scanf printf 输入输出,不适用于C++的cin cout
  10. 定义字符串 string s;判断字符串与某其他串相等 用双引号if(s=="!")。有时会脑抽?
  11. if else if ..else if...的逻辑 与 if ...if...if...不同
  12. 小写字母的ASCII码反而比大写字母大32  =====另外可用 toupper将小写字母转大写、tolower将大写字母转小写
  13. stoi是将string转为int 但string的长度不超过10位
  14. 如何实现浮点数四舍五入:
    flaot f=...;
    int i=(int)(f+0.5);//i即为f四舍五入后的结果

     

  15. map的find 函数与string的find函数关于没有找到目标元素的区别:
    //map
    my.find(..)==my.end();
    //string
    s.find(...)==string::npos;

     

  16. 定义结构体加分号
  17. 整形int 占用32bit=====绝对值在10^9范围以内的整数或者32位整数均可定义为int 型
  18. 如果说绝对值在10^18以内(>10^9)或者说64位整数 则定义成long long 型
  19. //符号常量
    #define pi 3.14
    //注意末尾不加分号
    
    const常量
    const double pi = 3.14;

     

  20. 如果需要给多个变量赋同一个值,可以用连续等号
    int m.n;
    m = n = 5;

     

  21. log(double x)返回的是以自然对数为底的对数。----C中没有以任意底数为对数的函数,所以只能使用换底公式----log a b =log e b/ log e a;
  22. %2d表示输出场宽为2的整数,超过2位按实际数据输出,不够2位右对齐输出;%02d表示输出场宽为2的整数,超过2位按实际数据输出,不足2位前置补0;%5.2f表示输出场宽为5的浮点数,其中小数点后有2位,不够5位右对齐输出。
  23. a*b = 最大公约数 * 最小公倍数;其中 最大公约数GCD用 辗转相除法求得
    int GCD(int a, int b){
       if(b == 0) return a;
      else return(b, a%b);  
    }

     

  24. 注意字符串中字符 与整数之间的转化 +/- ‘0’,有时用的是整数 有时用的为字符。
  25. 如果图的顶点个数>1000,一般使用邻接表建图。顶点个数小于1000,为了方便 可以使用邻接矩阵建图。
  26. switch 语句中 每个分支 记得要加 break!!!!
posted @ 2020-04-13 14:38  岩烧店的烟味弥漫  阅读(174)  评论(0)    收藏  举报