Предмет: Информатика, автор: DavidDaviduch

C++ (Срочно) Створіть функцію яка сортує рядки двомірного мастиву парні рядки за збільшенням не парні рядки за спаданням

Ответы

Автор ответа: 21bromanprokop
1

Відповідь:

Для сортування двомірного масиву рядків використовують функцію sort() з бібліотеки algorithm. Щоб відсортувати парні рядки за збільшенням, а не парні за спаданням, потрібно визначити порядок сортування у функції порівняння, переданої до sort().

Ось приклад коду на C++, який сортує двомірний масив рядків за зазначеним порядком:

c++

#include <iostream>

#include <algorithm>

#include <string>

using namespace std;

bool compare(string a, string b) {

   if (a.length() % 2 == 0 && b.length() % 2 == 0) { // парні рядки

       return a < b; // збільшенням

   }

   else if (a.length() % 2 != 0 && b.length() % 2 != 0) { // непарні рядки

       return a > b; // спаданням

   }

   else { // інакше

       return a.length() < b.length(); // за зростанням довжини

   }

}

int main() {

   string arr[4][3] = {{"abc", "def", "ghi"}, {"jkl", "mno", "pqr"}, {"stu", "vwx", "yz"}, {"1234", "5678", "90"}};

   sort(&arr[0][0], &arr[3][2] + 1, compare);

   for (int i = 0; i < 4; i++) {

       for (int j = 0; j < 3; j++) {

           cout << arr[i][j] << " ";

       }

       cout << endl;

   }

   return 0;

}

У цьому прикладі ми використовуємо функцію compare(), яка порівнює два рядки і повертає true, якщо перший рядок повинен бути перед другим у відсортованому масиві.

У функції compare() ми перевіряємо, чи є обидва рядки парними, непарними або різними. Якщо обидва рядки парні, ми порівнюємо їх за збільшенням. Якщо обидва рядки непарні, ми порівнюємо їх за спаданням. Якщо рядки різні, ми порівнюємо їх за зростанням довжини.

У функції main() ми використовуємо функцію sort() з передачею посилання на перший і останній елементи масиву, а також вказуємо функцію порівняння compare(). Потім ми виводимо відсортований масив на екран.

Похожие вопросы
Предмет: Русский язык, автор: katanatw1337
Предмет: Українська мова, автор: sasha68779
Перепишіть речення, розставляючи розділові знаки.

1. Моя любове я перед тобою. Бери мене в свої блаженні сни (Л. Костенко)
2. Опісне Ти плескіт рік ти переливи мідні... (М. Рильський) 3. Майстре прадавній яку
таіну ти осягнув у хвилину пророчу? (А. Кащенко) 4. Прощай мій зошите Спасибі тобі
друже що ти думок моїх не відцуравсь (В. Симоненко). 5. Спи мій малесенький Пізній
бо час (Л. Українка). 6. Мене тривожили думки яким громадянином якою людиною ти
станеш малюк (В. Сухомлинський). 7. Місяченьку Наш голубоньку Ходи до нас
вечеряти (Т. Шевченко). 8. Бандуристе орле сизий! Добре тобі брате: маєш крила, маєш
силу, є коли літати (Т. Шевченко). 9. Зеленiйся рідне поле українська ниво! (І. Франко).
10. Розваж мене Музо моя ти порадо! Так важко на серці в сей вечір мені!
(Л. Українка). 11. Це ж добре друзі! (Я. Шумило). 12. Нічко дивна Тобі я корюся, геть
всі темнії думи сумні! (Л. Українка). 13. Ох пісне чому, як той птах не летиш?
(М. Рильський) 14. Ой Дніпре мій Дніпре широкий та дужий багато ти батьку у моря
носив козацької крові (Т. Шевченко). 15. Слово моя ти єдиная зброє ми не повинні
загинуть обоє! (Л. Українка) 16. Лети жо ніч, щоб день тобі на зміну прийшов новий
(В. Сосюра). 17. Не стелись тумане не шуміть тополі не печальте очі ви берізки голі!
(В. Сосюра)​