Порядок операции int (4 * x / y) против int (x / (y / 4))

Предположим, что x и y имеют тип int.

Являются ли два выражения

int (4 * x / y) и

INT (х / (г / 4))

всегда оценивать одинаково для всех х и у типа int? Они должны быть математически, но только второе выражение является последовательным (т.е. выдает ожидаемое значение) в программе, которую я написал.

редактировать: это в C ++. Благодарю.

1

Решение

Во многих языках программирования 4*x/y а также x/(y/4) разные, потому что y/4, целое число, является усеченным результатом деления y от 4, Нет такого усечения в 4*x/y, По очевидной разнице в том, когда y является 1в этом случае второе выражение делится на ноль, тогда как первое вычисляет 4*x,

1

Другие решения

я предполагаю, что х и у являются целыми

тогда конечно нет 🙂
на целые числа: х / 4 = этаж (х / 4) математически

который дает вам:

этаж (4 * х / у)
а также
пол (х / пол (у / 4))

1

По вопросам рекламы [email protected]