Как найти индекс минимального элемента массива с помощью указателя? - 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;
}

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

  1. Подключение стандартной библиотеки.
  2. Объявление массива v с элементами: 3, 5, 4, 1, 8, 9.
  3. Вычисление длины массива с помощью оператора sizeof.
  4. Объявление указателя pMin на первый элемент массива v.
  5. Проверка каждого элемента массива, начиная со второго, на предмет того, является ли он меньше текущего минимального значения.
  6. Если текущий элемент меньше, то он становится новым минимальным значением, а указатель pMin обновляется соответствующим образом.
  7. Вычисление индекса минимального элемента с использованием арфиметики указателей.
  8. Вывод индекса минимального элемента на экран.
  9. Возврат 0, чтобы указать на успешное выполнение программы.

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


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

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

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