Переставить элементы массива - C (СИ)

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

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

дано массив F [14]. Переставить элементы массива таким образом, чтобы в начале был минимальный элемент массива а в конце максимальный. Вывести результирующий массив.

Решение задачи: «Переставить элементы массива»

textual
Листинг программы
#define N 14
imin = imax = 0;
for(i=1; i<N; i++) {
  if (a[i] < a[imin]) imin = i;
  if (a[i] > a[imax]) imax = i;
}
if (imin==imax) printf("Все числа равны\n");
else {
 if (imin != 0) {
    tmp = a[0];
    a[0] = a[imin];
    a[imin] = tmp;
  }
 if (imax != N-1) {
    tmp = a[N-1];
    a[N-1] = a[imax];
    a[imax] = tmp;
  }
}

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

Код выполняет сортировку массива a методом выборочного обмена (selection sort).

  1. Первая строка определяет размер массива N.
  2. Следующие три строки ищут минимальный и максимальный элементы в неотсортированном массиве.
  3. Если все элементы равны, выводится сообщение Все числа равны.
  4. В противном случае, если min и max не являются первым и последним элементами соответственно, происходит обмен их местами.
  5. Если min и max находятся на позициях 0 и N-1 соответственно, то требуется обмен только первого и последнего элементов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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