Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Calculation in c++

  1. Oct 9, 2013 #1
    I am doing my homework regarding calculation in c++.
    I am confused by the below question.
    Int A=2 B=3 C=4
    B-C && (B-A) /C
    I think the answer is 0 because the first part is negative.
    But,my friends say the answer is 1 because -1 not mean false.
    I want to ask which answer is right?
    Thanks.
     
  2. jcsd
  3. Oct 9, 2013 #2

    Borek

    User Avatar

    Staff: Mentor

    Your friend is right - -1 doesn't mean false. 0 and only 0 means false.
     
  4. Oct 9, 2013 #3

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    You and your friend are both incorrect. You could easily check this by running it through a C++ compiler.

    In C++, there is implicit conversion from ints to bools. && has pretty low precedence, so first the following expressions are evaluated: B - C is 3 - 4 = -1, and (B - A) / C is 1 / 4 = 0 (in integer division).
    So the resulting expression is -1 && 0 which is equivalent to true && false, hence the result you get is false (0).
     
    Last edited: Oct 9, 2013
  5. Oct 9, 2013 #4

    Borek

    User Avatar

    Staff: Mentor

    Ah, I referred just to the small part of the post, I have not actually bothered to evaluate whole expression :shy:
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook