Calculation in c++

  • C/++/#
  • Thread starter ccky
  • Start date
  • #1
15
0

Main Question or Discussion Point

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.
 

Answers and Replies

  • #2
Borek
Mentor
28,402
2,801
Your friend is right - -1 doesn't mean false. 0 and only 0 means false.
 
  • Like
Likes 1 person
  • #3
CompuChip
Science Advisor
Homework Helper
4,302
47
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 1 person
  • #4
Borek
Mentor
28,402
2,801
Ah, I referred just to the small part of the post, I have not actually bothered to evaluate whole expression :shy:
 

Related Threads on Calculation in c++

  • Last Post
Replies
12
Views
2K
Replies
1
Views
5K
Replies
15
Views
2K
Replies
6
Views
3K
  • Last Post
Replies
2
Views
4K
Replies
8
Views
2K
Replies
4
Views
5K
Replies
4
Views
799
  • Last Post
Replies
1
Views
509
Replies
2
Views
3K
Top