zoukankan      html  css  js  c++  java
  • C++ "+="等运算符使用bug

    昨晚写了一个程序,使用了“+=”运算符,结果总不是我想要的,查了一晚没找到,今早才发现:

    timeInterval = tpImP.staTime - imgPara[serial - 1].endTime;
    imgPara[serial - 1].staTime -= timeInterval / 2 - 5;
    imgPara[serial - 1].endTime += timeInterval / 2;
    

    由于timeInterval总等于5,所以staTime与endTime总是相等,但是一个加一个减,并且前一个多减了5,怎么会相等呢?

    后来反复测试发现,“-5”实际上变为了“+5”,所以才会相等:

    imgPara[serial - 1].staTime -= timeInterval / 2 - 5;
    等价于
    imgPara[serial - 1].staTime = imgPara[serial - 1].staTime - (timeInterval / 2 - 5);
    

    正确写法如下:

    timeInterval = tpImP.staTime - imgPara[serial - 1].endTime;
    imgPara[serial - 1].staTime -= timeInterval / 2 + 5;
    imgPara[serial - 1].endTime += timeInterval / 2;
    

      

  • 相关阅读:
    Path Sum
    Restore IP Addresses
    Subsets II
    N-Queens
    Subsets
    Combination Sum II
    Combination Sum
    Sudoku Solver
    Valid Sudoku
    【贪心】【Uva11292】 勇者斗恶龙
  • 原文地址:https://www.cnblogs.com/xingzhensun/p/5976098.html
Copyright © 2011-2022 走看看