Напишите программу на языке C++, которая упорядочивает элементы массива по возрастанию последней цифры чисел в их десятичной записи. Входные данные состоят из двух строк. Первая строка содержит размер массива n, а вторая строка содержит n чисел, разделенных пробелами - элементы массива. Гарантируется, что 0 < n ≤ 10000. Результат программы должен быть выведен в одной строке и содержать элементы массива, отсортированные в порядке возрастания последней цифры в их десятичной записи. Если числа имеют одинаковую последнюю цифру, они должны быть выведены в том же порядке, в котором они были в исходном массиве. Ниже приведены примеры работы программы.
Veselyy_Kloun
Хорошо, чтобы упорядочить элементы массива по возрастанию последней цифры чисел в их десятичной записи, мы можем использовать алгоритм сортировки пузырьком. Вот программа на языке C++, которая решает данную задачу:
Давайте разберемся, как эта программа работает.
1. Сначала мы объявляем необходимые библиотеки для работы с массивами, векторами и алгоритмами C++.
2. Затем мы объявляем функцию compareByLastDigit, которая будет сравнивать два числа по последней цифре. Функция возвращает true, если последняя цифра числа a меньше, чем последняя цифра числа b.
3. В функции main мы считываем размер массива n с помощью std::cin и создаем вектор arr размером n.
4. Затем мы считываем элементы массива с помощью цикла for, используя std::cin.
5. Далее мы сортируем массив arr с использованием std::sort и передаем функцию compareByLastDigit в качестве аргумента. Это означает, что элементы массива будут упорядочены по последней цифре в их десятичной записи.
6. Наконец, мы выводим отсортированный массив с помощью цикла for и std::cout.
Таким образом, данная программа сортирует элементы массива по возрастанию последней цифры чисел в их десятичной записи и выводит результат. Пожалуйста, не стесняйтесь задавать вопросы, если что-то не ясно.
cpp
#include
#include
#include
// Функция для сравнения двух чисел по последней цифре
bool compareByLastDigit(int a, int b) {
return a % 10 < b % 10;
}
int main() {
int n;
std::cin >> n;
std::vectorarr(n);
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}
// Сортируем массив с использованием compareByLastDigit
std::sort(arr.begin(), arr.end(), compareByLastDigit);
// Выводим отсортированный массив
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
Давайте разберемся, как эта программа работает.
1. Сначала мы объявляем необходимые библиотеки для работы с массивами, векторами и алгоритмами C++.
2. Затем мы объявляем функцию compareByLastDigit, которая будет сравнивать два числа по последней цифре. Функция возвращает true, если последняя цифра числа a меньше, чем последняя цифра числа b.
3. В функции main мы считываем размер массива n с помощью std::cin и создаем вектор arr размером n.
4. Затем мы считываем элементы массива с помощью цикла for, используя std::cin.
5. Далее мы сортируем массив arr с использованием std::sort и передаем функцию compareByLastDigit в качестве аргумента. Это означает, что элементы массива будут упорядочены по последней цифре в их десятичной записи.
6. Наконец, мы выводим отсортированный массив с помощью цикла for и std::cout.
Таким образом, данная программа сортирует элементы массива по возрастанию последней цифры чисел в их десятичной записи и выводит результат. Пожалуйста, не стесняйтесь задавать вопросы, если что-то не ясно.
Знаешь ответ?