• Предмет: Информатика
  • Автор: DavidDaviduch
  • Вопрос задан 4 месяца назад

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(). Потім ми виводимо відсортований масив на екран.

Вас заинтересует