C - 使负值为正值并在函数外使用它

时间:2017-06-13 05:16:44

标签: c if-statement

我有以下代码使difference为负,如果它的总和低于0但它没有正确更新difference的值。为什么呢?

    // if difference is negative, it is multiplied by -1
    if (difference < 0) {
        difference * -1;
    }

我在这里做错了什么?

FIX

if (difference < 0) {
        difference = difference * -1;
    }

3 个答案:

答案 0 :(得分:4)

您需要像difference = difference * -1;

一样进行更改

答案 1 :(得分:3)

只是回答你的确切问题:

以下行不正确。

if (difference < 0) {
        difference * -1;
    }

应该是

if (difference < 0) {
        difference = difference * -1;
    }

答案 2 :(得分:1)

执行此操作时:

difference * -1;

您将difference的值乘以-1,但由于您没有将其分配给任何内容,或者在表达式中使用此值,结果将被丢弃。

将结果分配回difference

difference = difference * -1;

或者,您可以先检查哪一个较大,然后从较大的一个中减去较小的一个:

int difference = (totalTimeTwo > totalTime) ? totalTimeTwo - totalTime :
                                              totalTime - totalTimeTwo;