Написать программу моделирующую работу лифта - C (СИ)
Формулировка задачи:
Лифт
Написать программу моделирующую работу лифта, находящегося на первом этаже. Допустим, что каждый заходящий в кабину лифта человек нажимает кнопку с номером этажа. После этого лифт определяет наиболее быстрый порядок транспортирования пассажиров, расставляя соответствующим образом этажи, на которых он должен остановиться.
Входные данные:
Три целых числа от 2 до 40. Номера этажей, на которые необходимо подняться пассажирам лифта.
Выходные данные:
Три числа Порядок в котором лифт будет делать остановки.
Подсказки:
Посмотрите на пример входных и выходных данных, если не догадались в каком порядке необходимо делать остановки.
Sample Input:
34 12 23
Sample Output:
12 23 34
Вариантов движения по этажам всего 4 это:
123
321
213
231
Вот последний вариант у меня никак не выходит, никак исправить не могу:
блин все равно валидацию пройти не могу, хотя вроде правильно все работает.
#includeint main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if((a < b && a < c) && ( b < c)) printf("%d %d %d\n", a, b, c); else if((c < a && c < b) && (b < a)) printf("%d %d %d\n", c, b, a); else if((b < a && b < c) && (a < c)) printf("%d %d %d\n", b, a, c); else if((b < a && b < c) && (c < a)) printf("%d %d %d\n", b, c, a); else printf("%d %d %d\n", a, b, c); return 0; }
вроде решил:
#includeint main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if((a < b && a < c) && (b < c)) printf("%d %d %d\n", a, b, c); else if((c < a && c < b) && (b < a)) printf("%d %d %d\n", c, b, a); else if((b < a && b < c) && (a < c)) printf("%d %d %d\n", b, a, c); else if((b < a && b < c) && (c < a)) printf("%d %d %d\n", b, c, a); else if((c < a && c < b) && (a < b)) printf("%d %d %d\n", c, a, b); else printf("%d %d %d\n", a, b, c); // put your code here return 0; }
еще дописал:
#includeint main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if((a < b && a < c) && (b < c)) printf("%d %d %d\n", a, b, c); else if((c < a && c < b) && (b < a)) printf("%d %d %d\n", c, b, a); else if((b < a && b < c) && (a < c)) printf("%d %d %d\n", b, a, c); else if((b < a && b < c) && (c < a)) printf("%d %d %d\n", b, c, a); else if((c < a && c < b) && (a < b)) printf("%d %d %d\n", c, a, b); else if((a == b && a < c)|| (b == c && a < b)) printf("%d %d %d\n", a, b, c); else if((b == c && a > c)) printf("%d %d %d\n", b, c, a); else if((a == c && b < c)) printf("%d %d %d\n", b, c, a); else printf("%d %d %d\n", a, b, c); // put your code here return 0; }
Решение задачи: «Написать программу моделирующую работу лифта»
textual
Листинг программы
#include <stdio.h> /* * Лифт Написать программу моделирующую работу лифта, находящегося на первом этаже. Допустим, что каждый заходящий в кабину лифта человек нажимает кнопку с номером этажа. После этого лифт определяет наиболее быстрый порядок транспортирования пассажиров, расставляя соответствующим образом этажи, на которых он должен остановиться. Входные данные: Три целых числа от 2 до 40. Номера этажей, на которые необходимо подняться пассажирам лифта. Выходные данные: Три числа Порядок в котором лифт будет делать остановки. Подсказки: Посмотрите на пример входных и выходных данных, если не догадались в каком порядке необходимо делать остановки. Sample Input: 34 12 23 Sample Output: 12 23 34 */ int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if(((a < b && a < c) && (b < c) || ((a == b && a < c)|| (b == c && a < b))) || (a == b && b == c)) printf("%d %d %d\n", a, b, c); if((c < a && c < b) && (b < a)) printf("%d %d %d\n", c, b, a); if((b < a && b < c) && (a < c)) printf("%d %d %d\n", b, a, c); if((b < a && b < c) && (c < a) || ((b == c && a > c) || (a == c && b < c))) printf("%d %d %d\n", b, c, a); if((c < a && c < b) && (a < b) || (a == c && b > c) || (a == b && a > c)) printf("%d %d %d\n", c, a, b); /* * Я уже все перепробовал, нифига не получается вроде уже все варианты учел 1 2 3 3 2 1 3 1 2 2 1 3 2 3 1 1 1 2 1 2 1 2 1 1 1 1 1 2 1 2 2 2 1 1 2 2 */ return 0; }
Объяснение кода листинга программы
- Программа моделирует работу лифта, находящегося на первом этаже.
- Входные данные: три целых числа от 2 до 40 - это номера этажей, на которые необходимо подняться пассажирам лифта.
- Выходные данные: три числа, представляющие порядок, в котором лифт будет делать остановки.
- В программе используется операция сканирования с помощью функции scanf для получения входных данных.
- Затем с помощью условных операторов if-else происходит определение наиболее быстрого порядка транспортирования пассажиров и соответствующим образом расставляются этажи, на которых лифт должен остановиться.
- Варианты, представленные в коде, являются всеми возможными комбинациями трех чисел от 1 до 3, что соответствует всем возможным порядкам остановок лифта.
- Возвращаемое значение 0 указывает на успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д