Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2019, 18:08   #1
Randy4k
Пользователь
 
Регистрация: 26.11.2019
Сообщений: 20
По умолчанию Робот может перемещаться в четырех направлениях

В Си пожалуйста!
Робот может двигаться в четырех направлениях ("W" - запад, "E" - восток, "N" - север, "S" - юг) и принимать три цифровые команды 0- продолжать движение, 1 - поворот налево, -1 - поворот вправо. Дано символ С первоначальному направлению движения робота и число l - направлена ему команда. Вывести направление движения робота после выполнения полученной команды


Вот что смог зделать, помогите !



Код:
	int l;
	char c;
	printf("Введіть початковий напрям(n,w,s,e)");
	scanf("%c",&c);
	printf("Введіть команду(0,1,-1)");
	scanf("%d",&l);
	switch(l){
		case 0:break;}
		switch (c){
		case -1:
			case 'n':c='e';break;
            case 'w':c='n';break;
			case 's':c='w';break;
			case 'e':c='s';break;};
			break;
			case 1:
				case 'n':c='w';break;
                case 'w':c='s';break;
			    case 's':c='e';break;
			    case 'e':c='n';break;
		                            };
		    break;
		}
		 printf("c=%c\n",c);
		 printf("Команда(0,1,-1)");
		 scanf("%d"&l)
}

Последний раз редактировалось Randy4k; 03.12.2019 в 18:23.
Randy4k вне форума Ответить с цитированием
Старый 03.12.2019, 18:22   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

"мероприятие" - пьянка что ль ? На всех компасах W - "west" сиречь "запад".
digitalis вне форума Ответить с цитированием
Старый 03.12.2019, 18:24   #3
Randy4k
Пользователь
 
Регистрация: 26.11.2019
Сообщений: 20
По умолчанию

Ошибка в переводе
W - запад
Randy4k вне форума Ответить с цитированием
Старый 04.12.2019, 10:57   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Тут не совсем понятно. Задал -1, 0 или 1 - получил направление - и конец задачи? Думаю, тут имелся в виду бесконечный цикл, и робота гоняли бы пока не надоест (выход из проги - по специальному коду - не -1, 0 или 1) . Если задача не исключительно на использование case, а просто решить - я бы применил индексный подход. Жаль, у меня Си на компе нету, а то нужен эксперимент: как оно отреагирует на такое
Код:
    i = 0 ; i = (--i) & 3 ; printf ("%d", i)) ;
чтоб не плодить лишний if. В Delphi оно работает как надо, даёт 3.

Последний раз редактировалось digitalis; 04.12.2019 в 11:00.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На каких направлениях в вузе больший охват программирования? aalleexx1999 Свободное общение 20 06.07.2019 09:59
В N-этажном доме лифт может перемещаться лишь через один или два этажа вверх или вниз lulka1988@ukr.net Помощь студентам 4 10.12.2013 21:01
Робот в четырех направлениях omelon Паскаль, Turbo Pascal, PascalABC.NET 0 29.05.2012 06:50
Бейсике макросы перемещаться по энтеро Romka12345 Microsoft Office Word 1 07.12.2011 01:47