У меня есть эти переменныев C Приведение типов и использование скобок
distance = 945
speed = 614
Я хочу, чтобы получить время в часах и минутах, таким образом я делить расстояние/скорость, чтобы получить часы. Теперь, если я хочу минут как целое у меня есть следующий код:
int minutes;
minutes = (float) (distance%speed)/speed * 60;
Это выражение дает значение 32 минут, однако, когда я впервые попробовал, я хотел бы сделать код более «читаемым» и я попробовал следующие варианты, которые дали мне-:
minutes = (float) ((distance%speed)/speed * 60);
minutes = (float) ((distance%speed)/speed ) * 60;
Обратите внимание, что добавлены круглые скобки и находятся в разных местах, так почему с помощью круглых скобок в местах, которые выглядят хорошо для меня вмешиваться в расчете и устанавливают значение 0 в переменная. Я предполагаю, что это связано с процессом придания типов, но круглые скобки находятся в местах, которые должны прояснить выражение.
У меня есть правильный ответ, и программа работает правильно, но я хочу понять это в будущих случаях, потому что я немного поиграл с круглыми скобками. Спасибо
Чтобы сделать код более удобным для чтения, рассмотрите возможность добавления комментария, чтобы указать единицы измерения расстояния и скорости, или изменить имя переменной: distance_metres, speed_metres_per_sec и т.д. – Kingsley
Почему вы ожидаете бросить следовать дистрибьюторское право? Является ли '1/(2 + 3) == 1/2 + 3'? Этот код не имеет особого смысла. Ваш компилятор должен жаловаться. Прочтите информационную страницу C для некоторых очень полезных советов. И предоставить [mcve]. – Olaf
@Chritian - комментарий Кингсли (добавление единицы) на самом деле очень хорош независимо от ваших фактических имен переменных. – artm