Calculation in C++: B-C && (B-A) /C - Which Answer is Right?

  • Context: C/C++ 
  • Thread starter Thread starter ccky
  • Start date Start date
  • Tags Tags
    C++ Calculation
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 3K views
ccky
Messages
15
Reaction score
0
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.
 
Physics news on Phys.org
Your friend is right - -1 doesn't mean false. 0 and only 0 means false.
 
  • Like
Likes   Reactions: 1 person
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:
  • Like
Likes   Reactions: 1 person
Ah, I referred just to the small part of the post, I have not actually bothered to evaluate whole expression :shy: