Win a copy of Design for the Mind this week in the Design forum!

# Preincrement used in an expression

Matt Kidd
Ranch Hand
Posts: 267
The expression is as follows:
quotient /= ++x;
All variables have an integer value of 5.

The answer given is x = 6, quotient = 0.
I get lost at some point. The way I understand preincrement (variable is incremented then reassigned before used in an expression) and postincrement (variable is used then incremented) the answer I thought it would be would be an 1 because the value is incremented then it divides.
Where am I messing up?

Ranch Hand
Posts: 265
Since quotient and x both = 5, you end up with quotient = 5/6, which as an int is 0. If you change the variables to floats, you will get quotient = .8333 and x = 6.

Marilyn de Queiroz
Sheriff
Posts: 9059
12
quotient /= ++x;

All variables have an integer value of 5.

int quotient = 5;
int x = 5;

quotient /= ++x ;
quotient = quotient / ++x ;
x = x + 1 ;
x = 6 ;
quotient = 5 / 6 ;
quotient = 5 / 6 ;

so --
quotient = 0 ;
x = 6 ;

 Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters?