Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "locale.h"
- // сравниваем и меняем местами числа
- void compareAndSwap(int* a, int* b, int dir) {
- if (*a == *b) {
- return;
- }
- if (*a < *b && dir == -1 || *a > *b && dir == 1) {
- int tmp = *a;
- *a = *b;
- *b = tmp;
- }
- }
- // подаем на сравнение все варианты на сравнения, что бы получить нужную очередь
- void sort(int* a, int* b, int* c, int* d, int dir) {
- compareAndSwap(a, c, dir);
- compareAndSwap(b, d, dir);
- compareAndSwap(a, b, dir);
- compareAndSwap(c, d, dir);
- compareAndSwap(b, c, dir);
- }
- int main() {
- // подключение руссого языка
- setlocale(LC_ALL, "rus");
- int a, b, c, d, dir; // переменные для чисел
- // ввод данных
- do {
- printf("Введите числа a b c d dir(-1, 1) через пробел: ");
- scanf_s("%d%d%d%d%d", &a, &b, &c, &d, &dir);
- if ((dir == 1) || (dir == -1)) { break; } // проверка на корректность ввода dir
- } while (true);
- sort(&a, &b, &c, &d, dir); // Подаем список в функцию и меняем их
- printf("%d %d %d %d\n", a, b, c, d); // вывод сортированного списка
- do {
- printf("Введите числа a b c d dir(-1, 1) через пробел: ");
- scanf_s("%d%d%d%d%d", &a, &b, &c, &d, &dir);
- if ((dir == 1) || (dir == -1)) { break; }
- } while (true);
- sort(&a, &b, &c, &d, dir);
- printf("%d %d %d %d\n", a, b, c, d);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement