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

Тема в разделе "Общие вопросы по С и С++", создана пользователем straparola, 3 дек 2011.

  1. straparola

    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 какой ближе всего к человеку и вывел бы результат на экран и расстановку соотвественно.
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

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

Поделиться этой страницей