Переставить элементы массива - 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).
- Первая строка определяет размер массива N.
- Следующие три строки ищут минимальный и максимальный элементы в неотсортированном массиве.
- Если все элементы равны, выводится сообщение
Все числа равны. - В противном случае, если min и max не являются первым и последним элементами соответственно, происходит обмен их местами.
- Если min и max находятся на позициях 0 и N-1 соответственно, то требуется обмен только первого и последнего элементов.