S
straparola
В доме N этажей и три лифта. Каждый лифт может быть свободным или занятым. Человек стоит на одном из этажей и собирается вызвать либо ближайший свободный лифт, либо ближайший занятый, направляющийся в сторону этажа, где находится человек.
Распечатать начальную конфигурацию (расстановку, занятость и направление движения лифтов, местоположение человека), а также номер лифта, который будет вызван.
Использовать функции ВВОД, ВЫВОД, ВЫБОР ЛИФТА.
Проблема в том, что я не могу сообразить как определить какой из лифтов будет вызван... Если бы не надо было учитывать их направление, то всё было бы просто, вычислил бы через if какой ближе всего к человеку и вывел бы результат на экран и расстановку соотвественно.
Распечатать начальную конфигурацию (расстановку, занятость и направление движения лифтов, местоположение человека), а также номер лифта, который будет вызван.
Использовать функции ВВОД, ВЫВОД, ВЫБОР ЛИФТА.
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 какой ближе всего к человеку и вывел бы результат на экран и расстановку соотвественно.