Как найти индекс минимального элемента массива с помощью указателя? - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, как можно найти индекс минимального элемента массива с помощью указателя?
Решение задачи: «Как найти индекс минимального элемента массива с помощью указателя?»
textual
Листинг программы
- #include <stdio.h>
- int main()
- {
- int v[] = { 3, 5, 4, 1, 8, 9 };
- size_t n = sizeof(v)/sizeof(v[0]); // длина массива
- int *pMin = v; // указатель на минимальный элемент
- // v и &v[0] - одно и то же, то есть указатель на начало массива
- for (int *p = v; p != v+n; ++p)
- {
- if (*p < *pMin)
- pMin = p;
- }
- int minIndex = pMin-v; // используем арфиметику указателей
- printf("Index of min element = %d\n", minIndex);
- return 0;
- }
Объяснение кода листинга программы
- Подключение стандартной библиотеки.
- Объявление массива
v
с элементами: 3, 5, 4, 1, 8, 9. - Вычисление длины массива с помощью оператора
sizeof
. - Объявление указателя
pMin
на первый элемент массиваv
. - Проверка каждого элемента массива, начиная со второго, на предмет того, является ли он меньше текущего минимального значения.
- Если текущий элемент меньше, то он становится новым минимальным значением, а указатель
pMin
обновляется соответствующим образом. - Вычисление индекса минимального элемента с использованием арфиметики указателей.
- Вывод индекса минимального элемента на экран.
- Возврат 0, чтобы указать на успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д