Разные результаты при перестановке множителя в C++

У меня есть такие фрагменты кода:

int n = 14, k = 5; 
cout << n/k * 2; 

и

int n = 14, k = 5; 
cout << 2 * n/k; 

Первый выдает 4, а второй 5. Почему так?


Ответы (1 шт):

Автор решения: Harry

Приоритеты умножения и деления одинаковы, операторы левоассоциативны, так что операции выполняются поочередно слева направо.

n/k*2 = 14/5*2 = 2*2 = 4

2*n/k = 2*14/5 = 28/5 = 5

Вы же помните, что такое целочисленное деление?

→ Ссылка