Помогите решить задачу на switch, case;
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Здравствуйте, сразу извиняюсь за глупый вопрос ибо для вас эта задачка может показаться совсем пустяковой, однако я в программировании новичок и «C»я начал изучать недавно.
Так вот,задачу надо решить с использованием switch, case; Как работает switch, case я в принципе понимаю, но вот с этой задачей целая проблема,уже 2 день думаю.
Задача:
Локатор ориентирован на одну из сторон света («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и может принимать одну из трех цифровых команд: -1 – поворот налево, 1 – поворот направо, 2 – поворот на 180 градусов. Дан символ C – исходная ориентация локатора и число N – посланная ему команда. Вывести ориентацию локатора после выполнения команды.
А зачем здесь switch?
Нууу, насколько я понял switch,case здесь для того чтобы при в введении одной из команд (1,-1,2) в зависимости от исходного положения локатора выдавало текущее положение локатора, как никак «case» оператор выбора.
Ну вот получилось что-то вроде этого правда не могу понять что с else не так.
Ну да, switch-case здесь как пятое колесо у телеги. Вот компактненький вариант:
Крутит локатор и вправо и влево на любое количество шагов. По команде 0 завершает работу.
Если в массив directions корректно добавить промежуточные положения типа «Северо-Восток» или даже «Восток-Северо-Восток», то будет крутить не по 1/4 оборота, а по 1/8 или, соответственно, по 1/16 оборота за шаг. (Понятно, что при этом команда 2 — это уже будет совсем не 180 градусов.)
Можно, конечно, вместо массива с названиями сторон света и выбора по индексу написать что-то типа
Но ведь говнокод же :\