Если массив А упорядочен по возрастанию, то упорядочить его по убыванию - C (СИ)
Формулировка задачи:
Дан вещественный массив A[N]. Если массив А упорядочен по возрастанию, то упорядочить его по убыванию, а если массив упорядочен по убыванию то упорядочить по возрастанию.
Решит плииииииззЗ)))
Решение задачи: «Если массив А упорядочен по возрастанию, то упорядочить его по убыванию»
textual
Листинг программы
void func(double *A, int n)
{
double tmp;
int i,j;
i=0;
j=n-1;
while (1)
{
if ((j-i) < 1) break;
tmp=A[i];
A[i]=A[j];
A[j]=tmp;
i++;
j--;
}
}
Объяснение кода листинга программы
- Входные данные:
double *A- указатель на начало массива,int n- размер массива.
- Создаем две переменные:
double tmp- временная переменная для обмена элементов,int iиj- индексы для прохода по массиву.
- Устанавливаем начальные значения переменных:
i=0- начальный индекс,j=n-1- конечный индекс.
- Запускаем цикл
while, который выполняется до тех пор, пока разница междуjиiбольше 1. - В каждой итерации цикла происходит обмен элементов:
tmp=A[i]- сохраняем значение элемента с индексомiво временной переменной,A[i]=A[j]- заменяем значение элемента с индексомiна значение элемента с индексомj,A[j]=tmp- заменяем значение элемента с индексомjна значение временной переменной,i++- увеличиваем значение переменнойiна 1,j--- уменьшаем значение переменнойjна 1.
- После завершения цикла сортировки, массив
Aбудет отсортирован в порядке убывания.