При помощи указателей найти и поменять местами элементы массива - C (СИ)
Формулировка задачи:
Использование указателей на массивы, работа со строками.
Вариант № 11
1.В массиве М(45) лежат целые числа. При помощи указателей найти максимальный элемент и минимальный элемент и поменять их местами.
2.
Решение задачи: «При помощи указателей найти и поменять местами элементы массива»
textual
Листинг программы
void SwapMaxMin(int* a, unsigned n) {
int* min = a;
int* max = a;
unsigned i;
for (i = 1; i < n; i++)
*(a + i) < *min && (min = a + i) || *(a + i) > *max && (max = a + i);
*min += *max;
*max = *min - *max;
*min -= *max;
}
Объяснение кода листинга программы
- Входные данные: int* a - указатель на начало массива; unsigned n - количество элементов в массиве.
- Создаются две переменные: min - указатель на минимальный элемент массива; max - указатель на максимальный элемент массива.
- Переменная i инициализируется значением 1.
- Цикл for выполняется до тех пор, пока i меньше n: (a + i) сравнивается с min. Если меньше, то min обновляется значением a + i. (a + i) сравнивается с max. Если больше, то max обновляется значением a + i.
- После завершения цикла: min увеличивается на max; max обновляется значением min - max; min уменьшается на *max.
- Возвращаемых значений нет.