
O resultado é 2, mas por qual motivo?
m=++m;
(++m = 1)?
n --;
(n que era 2 passa a ser 1)?

O resultado é 2, mas por qual motivo?
m=++m;
(++m = 1)?
n --;
(n que era 2 passa a ser 1)?
m = ++m significa que, antes da variavel M receber ela mesmo, ela acresce um.
Seu programa roda duas vezes (n começa em 2 e perde 1 a cada repetição, a condição de parada é enquanto n > 0. Se n =0, acaba.), portanto, na “primeira volta” m vale um, e na segunda e ultima, 2.