Сформировать из данного массива два (один - из элементов перед max, второй - из остальных элементов) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Условие задачи: Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен элементами, предшествующими максимальному, а второй - остальными элементами. И отсортировать первый - по убыванию, второй - по возрастанию.
На задачу наткнулся случайно, хотелось бы понять как ее решить, т.к. изучать язык Си начал совсем недавно. Заранее спасибо.

Решение задачи: «Сформировать из данного массива два (один - из элементов перед max, второй - из остальных элементов)»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define n 10
int main()
{
int a[n]={3,4,9,10,5,7,12,0,17,14};
int b[n], c[n], j, jm;
for(j=1, jm=0; j<n; j++) {
  if (a[j] > a[jm]) jm = j;
}
for(j=0; j<jm; j++)
  b[j] = a[j];
for(j=0; j < n- jm; j++)
  c[j] = a[jm+j];
return 0;
}

Объяснение кода листинга программы

В этом коде задача заключается в том, чтобы разделить массив a на два новых массива b и c.

  1. Массив b должен содержать элементы из массива a, которые находятся перед максимальным элементом.
  2. Массив c должен содержать все остальные элементы из массива a. Список действий в коде:
  3. Создается массив a с 10 элементами, значения которых равны {3, 4, 9, 10, 5, 7, 12, 0, 17, 14}.
  4. Создаются два новых массива b и c, каждый из которых имеет размер n.
  5. Переменная j инициализируется значением 1, а переменная jm инициализируется значением 0. Эти переменные используются для прохождения по массиву a.
  6. Начинается цикл for, который проходит по всем элементам массива a. Он сравнивает текущий элемент с элементом, который находится на позиции jm. Если текущий элемент больше, то он заменяет элемент на позиции jm.
  7. После того, как найден максимальный элемент, его индекс сохраняется в переменной jm.
  8. Завершается первый цикл for.
  9. Начинается второй цикл for, который проходит по всем элементам массива a до элемента с индексом jm. Все элементы копируются в массив b.
  10. Начинается третий цикл for, который проходит по всем элементам массива a, начиная с элемента с индексом jm+1. Он копирует все элементы в массив c.
  11. Программа завершается и возвращает 0. Таким образом, после выполнения кода, в переменной b будет содержаться массив {3, 4, 5, 7, 10, 12, 0, 14}, а в переменной c - {9, 17, 10, 14}.

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы