• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Решение Задачи На Тему Структуры

  • Автор темы straparola
  • Дата начала
S

straparola

В доме N этажей и три лифта. Каждый лифт может быть свободным или занятым. Человек стоит на одном из этажей и собирается вызвать либо ближайший свободный лифт, либо ближайший занятый, направляющийся в сторону этажа, где находится человек.
Распечатать начальную конфигурацию (расстановку, занятость и направление движения лифтов, местоположение человека), а также номер лифта, который будет вызван.
Использовать функции ВВОД, ВЫВОД, ВЫБОР ЛИФТА.

C++:
#include <stdio.h>
#include <string.h>
#include <math.h>
struct lift
{
int situate;
char sost[10];
char way[3];
}

lift1, lift2, lift3;

main()
{
int flour;
int man;
int l1,l2,l3;
int min;
clrscr();
printf("\nVvedite kolichestvo etajei v zdanii -> ");
scanf("%i",&flour);
printf("\nVvedite nomer etaja na kotorom nahoditsya chelovek -> ");
scanf("%i",&man);

printf("\nVvod informacii o lifte #1:\n");
printf("Nomer etaja na kotorom nahodtsya lift (ot 1 do %i -> ",flour);
scanf("%i",&lift1.situate);
printf("\nLifr zanyat ili svoboden? -> ");
scanf("%s",lift1.sost);
printf("\nNapravlenie dvijeniya lifta: up or down -> ");
scanf("%s",lift1.way);

printf("\nVvod informacii o lifte #2:\n");
printf("Nomer etaja na kotorom nahodtsya lift (ot 1 do %i -> ",flour);
scanf("%i",&lift2.situate);
printf("\nLifr zanyat ili svoboden? -> ");
scanf("%s",lift2.sost);
printf("\nNapravlenie dvijeniya lifta: up or down -> ");
scanf("%s",lift2.way);

printf("\nVvod informacii o lifte #3:\n");
printf("Nomer etaja na kotorom nahodtsya lift (ot 1 do %i -> ",flour);
scanf("%i",&lift3.situate);
printf("\nLifr zanyat ili svoboden? -> ");
scanf("%s",lift3.sost);
printf("\nNapravlenie dvijeniya lifta: up or down -> ");
scanf("%s",lift3.way);
getch();

}


Проблема в том, что я не могу сообразить как определить какой из лифтов будет вызван... Если бы не надо было учитывать их направление, то всё было бы просто, вычислил бы через if какой ближе всего к человеку и вывел бы результат на экран и расстановку соотвественно.
 
L

lazybiz

А если все лифты заняты и направляются по направлению от человека, тогда решения не будет?
P.S.: Мне кажется слово down не поместится в массив way.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!