Из двух матриц создать результирующий упорядоченный массив - C (СИ)
Формулировка задачи:
Даны два одномерных массива, упорядоченные по убыванию, сделать один массив, упорядоченный по возрастанию. Сортировать полученный массив нельзя.
Решение задачи: «Из двух матриц создать результирующий упорядоченный массив»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> void printArray(int* a, int size) { printf("\n"); for (int i = 0; i < size; ++i) printf("%4d", a[i]); } int intComparator(const void* p1, const void* p2) { return (*(int*)p2 - *(int*)p1); } int main() { int a[10], b[10], c[20]; srand(time(NULL)); for (int i = 0; i < 10; ++i) { a[i] = rand() % 20; b[i] = rand() % 20; } qsort((void*)a, 10, sizeof(int), intComparator); qsort((void*)b, 10, sizeof(int), intComparator); printArray(a, 10); printArray(b, 10); int i = 9, j = 9, cIndex = 0; for (; i >= 0 || j >= 0; --i) { for (; j >= 0 && (i < 0 || b[j] < a[i]); --j) c[cIndex++] = b[j]; if(i >= 0) c[cIndex++] = a[i]; } printArray(c, 20); getchar(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h, stdlib.h и time.h
- Определяется функция printArray, которая выводит элементы массива в формате 4-х разрядного целого числа, сдвинутого влево на 4 позиции
- Определяется функция intComparator, которая сравнивает два указателя на целые числа в пересортированном массиве
- В функции main создаются массивы a и b, заполняются случайными числами от 0 до 19
- Массивы a и b сортируются по возрастанию с помощью функции qsort и функции сравнения intComparator
- Выводятся отсортированные массивы a и b
- Инициализируются индексы i и j, которые будут использоваться в цикле
- В цикле, пока i и j не станут отрицательными, происходит заполнение массива c элементами из массива b, а затем, если i больше или равно нулю, добавляется элемент из массива a
- Выводится массив c
- В функции main добавляется вызов функции getchar, чтобы программа не закрылась сразу после вывода массива c
- Возвращается 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д