Как найти наименьшее значение вектора

В этом посте мы обсудим, как найти минимальное или максимальное значение в векторе на C++.

1. Использование std::max_element

The std::min_element а также std::max_element вернуть итератору минимальное и максимальное значение в указанном диапазоне соответственно. В следующем примере кода показан вызов обеих этих функций:

#include <iostream>

#include <vector>

#include <algorithm>

int main()

{

    std::vector<int> v = {2, 1, 3, 6, 7, 9, 8};

    int max = *max_element(v.begin(), v.end());

    int min = *min_element(v.begin(), v.end());

    std::cout << min << «, « << max << std::endl;        // 1, 9

    return 0;

}

Скачать  Выполнить код

 
Обе эти функции принимают бинарный предикат, который можно использовать для сравнения вектора объектов с использованием определенного поля, как показано ниже:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

#include <iostream>

#include <vector>

#include <algorithm>

struct Person {

    std::string name;

    int age;

};

bool comp(Person const &lhs, Person const &rhs) {

    return lhs.age < rhs.age;

}

int main()

{

    std::vector<Person> v = {

        {«A», 10}, {«B», 15}, {«C», 12}, {«D», 14}

    };

    auto min = std::min_element(v.begin(), v.end(), comp);

    auto max = std::max_element(v.begin(), v.end(), comp);

    std::cout << «Minimum age object: (« << min->name << «, « << min->age << «)n»;

    std::cout << «Maximum age object: (« << max->name << «, « << max->age << «)n»;

    return 0;

}

Скачать  Выполнить код

результат:

Minimum age object: (A, 10)
Maximum age object: (B, 15)

2. Использование std::minmax_element

Лучшим вариантом является использование std::minmax_element функция для получения минимального и максимального количества элементов в контейнере. Он возвращает пару итераторов, первое и второе значения которых указывают на минимальный и максимальный элементы соответственно.

#include <iostream>

#include <vector>

#include <algorithm>

int main()

{

    std::vector<int> v = {2, 1, 3, 6, 7, 9, 8};

    auto it = std::minmax_element(v.begin(), v.end());

    int min = *it.first;

    int max = *it.second;

    std::cout << min << «, « << max << std::endl;        // 1, 9

    return 0;

}

Скачать  Выполнить код

 
Чтобы получить индекс элементов с максимальным или минимальным значением, примените арифметику указателя или вызовите std::distance функция.

#include <iostream>

#include <vector>

#include <algorithm>

int main()

{

    std::vector<int> v = {2, 1, 3, 6, 7, 9, 8};

    auto it = std::minmax_element(v.begin(), v.end());

    int min_idx = std::distance(v.begin(), it.first);

    int max_idx = std::distance(v.begin(), it.second);

    std::cout << min_idx << «, « << max_idx << std::endl;        // 1, 5

    return 0;

}

Скачать  Выполнить код

3. Использование пользовательской процедуры

Наконец, мы можем написать вашу собственную процедуру, чтобы найти минимальное и максимальное значение в векторе. Вот как будет выглядеть код:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#include <iostream>

#include <vector>

#include <climits>

template<typename T>

int findMaximum(std::vector<T> const &vec) {

    int max = INT_MIN;

    for (const T &i: vec) {

        if (max < i) {

             max = i;

        }

    }

    return max;

}

template<typename T>

int findMinimum(std::vector<T> const &vec) {

    int min = INT_MAX;

    for (const T &i: vec) {

        if (min > i) {

             min = i;

        }

    }

    return min;

}

int main()

{

    std::vector<int> v = {2, 1, 3, 6, 7, 9, 8};

    int min = findMinimum(v);

    int max = findMaximum(v);

    std::cout << min << «, « << max << std::endl;        // 1, 9

    return 0;

}

Скачать  Выполнить код

Это все о поиске минимального или максимального значения в векторе в C++.

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования :)

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given a vector, find the minimum and maximum element of this vector using STL in C++. Example:

    Input: {1, 45, 54, 71, 76, 12}
    Output: min = 1, max = 76
    
    Input: {10, 7, 5, 4, 6, 12}
    Output: min = 1, max = 76

    Approach:

    • Min or Minimum element can be found with the help of *min_element() function provided in STL.
    • Max or Maximum element can be found with the help of *max_element() function provided in STL.

    Syntax:

    *min_element (first_index, last_index);
    
    *max_element (first_index, last_index);

    Below is the implementation of the above approach: 

    CPP

    #include <bits/stdc++.h>

    using namespace std;

    int main()

    {

      vector<int> a = { 1, 45, 54, 71, 76, 12 };

      cout << "Vector: ";

      for (int i = 0; i < a.size(); i++)

        cout << a[i] << " ";

      cout << endl;

      cout << "nMin Element = "

        << *min_element(a.begin(), a.end());

      cout << "nMax Element = "

        << *max_element(a.begin(), a.end());

      return 0;

    }

    Output:

    Vector: 1 45 54 71 76 12 
    
    Min Element = 1
    Max Element = 76

    Time Complexity: O(N)
    Auxiliary Space: O(1)

    Last Updated :
    07 Jul, 2022

    Like Article

    Save Article

    Нахождение длины вектора, примеры и решения

    Длина вектора — основные формулы

    Длину вектора a → будем обозначать a → . Данное обозначение аналогично модулю числа, поэтому длину вектора также называют модулем вектора.

    Для нахождения длины вектора на плоскости по его координатам, требуется рассмотреть прямоугольную декартову систему координат O x y . Пусть в ней задан некоторый вектор a → с координатами a x ; a y . Введем формулу для нахождения длины (модуля) вектора a → через координаты a x и a y .

    От начала координат отложим вектор O A → = a → . Определим соответственные проекции точки A на координатные оси как A x и A y . Теперь рассмотрим прямоугольник O A x A A y с диагональю O A .

    Из теоремы Пифагора следует равенство O A 2 = O A x 2 + O A y 2 , откуда O A = O A x 2 + O A y 2 . Из уже известного определения координат вектора в прямоугольной декартовой системе координат получаем, что O A x 2 = a x 2 и O A y 2 = a y 2 , а по построению длина O A равна длине вектора O A → , значит, O A → = O A x 2 + O A y 2 .

    Отсюда получается, что формула для нахождения длины вектора a → = a x ; a y имеет соответствующий вид: a → = a x 2 + a y 2 .

    Если вектор a → дан в виде разложения по координатным векторам a → = a x · i → + a y · j → , то вычислить его длину можно по той же формуле a → = a x 2 + a y 2 , в данном случае коэффициенты a x и a y выступают в роли координат вектора a → в заданной системе координат.

    Вычислить длину вектора a → = 7 ; e , заданного в прямоугольной системе координат.

    Чтобы найти длину вектора, будем использовать формулу нахождения длины вектора по координатам a → = a x 2 + a y 2 : a → = 7 2 + e 2 = 49 + e

    Формула для нахождения длины вектора a → = a x ; a y ; a z по его координатам в декартовой системе координат Oxyz в пространстве, выводится аналогично формуле для случая на плоскости (см. рисунок ниже)

    В данном случае O A 2 = O A x 2 + O A y 2 + O A z 2 (так как ОА – диагональ прямоугольного параллелепипеда), отсюда O A = O A x 2 + O A y 2 + O A z 2 . Из определения координат вектора можем записать следующие равенства O A x = a x ; O A y = a y ; O A z = a z ; , а длина ОА равна длине вектора, которую мы ищем, следовательно, O A → = O A x 2 + O A y 2 + O A z 2 .

    Отсюда следует, что длина вектора a → = a x ; a y ; a z равна a → = a x 2 + a y 2 + a z 2 .

    Вычислить длину вектора a → = 4 · i → — 3 · j → + 5 · k → , где i → , j → , k → — орты прямоугольной системы координат.

    Дано разложение вектора a → = 4 · i → — 3 · j → + 5 · k → , его координаты равны a → = 4 , — 3 , 5 . Используя выше выведенную формулу получим a → = a x 2 + a y 2 + a z 2 = 4 2 + ( — 3 ) 2 + 5 2 = 5 2 .

    Длина вектора через координаты точек его начала и конца

    Выше были выведены формулы, позволяющие находить длины вектора по его координатам. Мы рассмотрели случаи на плоскости и в трехмерном пространстве. Воспользуемся ими для нахождения координат вектора по координатам точек его начала и конца.

    Итак, даны точки с заданными координатами A ( a x ; a y ) и B ( b x ; b y ) , отсюда вектор A B → имеет координаты ( b x — a x ; b y — a y ) значит, его длина может быть определена по формуле: A B → = ( b x — a x ) 2 + ( b y — a y ) 2

    А если даны точки с заданными координатами A ( a x ; a y ; a z ) и B ( b x ; b y ; b z ) в трехмерном пространстве, то длину вектора A B → можно вычислить по формуле

    A B → = ( b x — a x ) 2 + ( b y — a y ) 2 + ( b z — a z ) 2

    Найти длину вектора A B → , если в прямоугольной системе координат A 1 , 3 , B — 3 , 1 .

    Используя формулу нахождения длины вектора по координатам точек начала и конца на плоскости, получим A B → = ( b x — a x ) 2 + ( b y — a y ) 2 : A B → = ( — 3 — 1 ) 2 + ( 1 — 3 ) 2 = 20 — 2 3 .

    Второй вариант решения подразумевает под собой применение данных формул по очереди: A B → = ( — 3 — 1 ; 1 — 3 ) = ( — 4 ; 1 — 3 ) ; A B → = ( — 4 ) 2 + ( 1 — 3 ) 2 = 20 — 2 3 . —

    Ответ: A B → = 20 — 2 3 .

    Определить, при каких значениях длина вектора A B → равна 30 , если A ( 0 , 1 , 2 ) ; B ( 5 , 2 , λ 2 ) .

    Для начала распишем длину вектора A B → по формуле: A B → = ( b x — a x ) 2 + ( b y — a y ) 2 + ( b z — a z ) 2 = ( 5 — 0 ) 2 + ( 2 — 1 ) 2 + ( λ 2 — 2 ) 2 = 26 + ( λ 2 — 2 ) 2

    Затем полученное выражение приравняем к 30 , отсюда найдем искомые λ :

    26 + ( λ 2 — 2 ) 2 = 30 26 + ( λ 2 — 2 ) 2 = 30 ( λ 2 — 2 ) 2 = 4 λ 2 — 2 = 2 и л и λ 2 — 2 = — 2 λ 1 = — 2 , λ 2 = 2 , λ 3 = 0 .

    Ответ: λ 1 = — 2 , λ 2 = 2 , λ 3 = 0 .

    Нахождение длины вектора по теореме косинусов

    Увы, но в задачах не всегда бывают известны координаты вектора, поэтому рассмотрим другие способы нахождения длины вектора.

    Пусть заданы длины двух векторов A B → , A C → и угол между ними (или косинус угла), а требуется найти длину вектора B C → или C B → . В таком случае, следует воспользоваться теоремой косинусов в треугольнике △ A B C , вычислить длину стороны B C , которая и равна искомой длине вектора.

    Рассмотрим такой случай на следующем примере.

    Длины векторов A B → и A C → равны 3 и 7 соответственно, а угол между ними равен π 3 . Вычислить длину вектора B C → .

    Длина вектора B C → в данном случае равна длине стороны B C треугольника △ A B C . Длины сторон A B и A C треугольника известны из условия (они равны длинам соответствующих векторов), также известен угол между ними, поэтому мы можем воспользоваться теоремой косинусов: B C 2 = A B 2 + A C 2 — 2 · A B · A C · cos ∠ ( A B , → A C → ) = 3 2 + 7 2 — 2 · 3 · 7 · cos π 3 = 37 ⇒ B C = 37 Таким образом, B C → = 37 .

    Итак, для нахождения длины вектора по координатам существуют следующие формулы a → = a x 2 + a y 2 или a → = a x 2 + a y 2 + a z 2 , по координатам точек начала и конца вектора A B → = ( b x — a x ) 2 + ( b y — a y ) 2 или A B → = ( b x — a x ) 2 + ( b y — a y ) 2 + ( b z — a z ) 2 , в некоторых случаях следует использовать теорему косинусов.

    Длина вектора — основные формулы

    Время чтения: 16 минут

    Основные понятия вектора

    Для того чтобы приступить к разбору формул нахождения длины вектора, необходимо разобраться в основных понятиях и определениях векторов.

    Понятие вектора получило широкое распространение в 19 веке, в математических науках, особенно в таком её разделе, как «Комплексные числа».

    Вектор — это отрезок с определённой длиной и направлением.

    Графическое изображение вектора — отрезок который имеет указание направления в виде стрелки.

    Вектор, который будет иметь начальную точку Х и конец в точке А, правильно обозначать ХА, с верхним подчёркиванием или стрелочкой, а также допустимо прописывать одной прописной буквой.

    Длину вектора (модуль), определяет числовое значение длины отрезка, имеющего направление. Обозначается длинна двумя вертикальными отрезками |ХА|.

    • Понятие нулевого вектора. Такое название получил вектор, у которого и начало, и конец находятся в одной точке. Обозначение он имеет в виде цифры ноль с верхним подчёркивание, а длина равна нулю.
    • Коллинеарные вектора. Одна прямая может содержать несколько векторов, такие векторы получили название коллинеарных. Также коллинеарными считаются векторы на параллельных прямых.

    • Сонаправленные. Два коллинеарных вектора считаются сонаправленными, если имеют одно направление.
    • Противоположно направленные. Вектора, с направлениями в разные стороны, и являются коллинеарными, называют противоположно направленными.
    • Компланарные вектора. Такими векторами называют, те что лежат в одной плоскости
      Так как, всегда можно отыскать плоскость, которая будет параллельной двум векторам, то любые два вектора всегда копланарные.

    Так как, всегда можно отыскать плоскость, которая будет параллельной двум векторам, то любые два вектора всегда копланарные.

    Вектора могут находится не только на плоскости, но и в пространстве, от этого расположения будет зависеть какую формулу необходимо использовать для нахождения их длины или модуля. Стоит также отметить, что вектора могут быть равными, при этом они должны иметь одно направление, одинаковые длины и быть коллинеарными. Существует понятие единичного вектора, таким он будет являться если равен единице измерения.

    Как найти длину вектора

    Модуль вектора а будем обозначать .

    Для того чтобы найти модуль вектора или его длину, на плоскости по координатам, необходимо рассмотреть вектор используя прямоугольную декартову систему координат Оxy. Допустим в данной системе будет задан, так вектор имеющий координаты (aₓ ; aᵧ). Получим формулу, которая поможет найти длину вектора , через известные нам координаты aₓ и aᵧ.

    На взятой системе координат, от её начала отложим вектор
    В соответствии с проекцией точки А возьмём и определим Aₓ и Aᵧ на оси координат. Рассмотрим полученный прямоугольник ОAₓ и АAᵧ с диагональю ОА.

    Далее используя теорему Пифагора мы получим равенство АО² = ОAₓ² и OAᵧ², отсюда следует

    Теперь в соответствии с определением вектора относительно прямоугольной оси координат выходит, что ОAₓ² = aₓ² и также для OAᵧ² = aᵧ² , а так как на построенном прямоугольнике мы видим, что ОА равна длине вектора получаем

    Из вышесказанного выходит, что для того чтобы найти длину вектора с точками (aₓ ; aᵧ), выводим следующую формулу:

    Когда вектор дан в формате разложения по координатным векторам , то вычислить его можно по той же формуле , в таком варианте коэффициент aₓ и aᵧ будут выражать в роли координат , в данной системе координат.

    Чтобы рассчитать длину = (3, √x), расположенного в прямоугольной системе координат.

    Чтобы найти модуль вектора используем ранее приведённую формулу

    Ответ:

    Существуют также формулы вычисления длины вектора в пространстве, они выводятся аналогично тем, что в системе координат на плоскости. Если взять вектор =(aₓ ; aᵧ ; a )

    В таком случае ( AO^2=OA_x^2+OA_y^2+OA_z^2 ) (из рисунка видно, что АО — диагональ прямоугольного параллелепипеда), поэтому

    из определения получаются равенства ОAₓ=aₓ; OAᵧ=aᵧ; OA=a , а значение длины ОА совпадает с длиной вектора, которую необходимо найти. Из этого следует:

    Ответ:

    Длина вектора через координаты точек начала и конца

    Ранее мы рассмотрели формулы, которые позволят находить длину вектора используя при этом координаты. Рассматривались примеры в трёхмерном пространстве на плоскости. Используя данные формулы можно найти длину вектора, если известны координаты точек его начала и конца.

    Возьмём точки с обозначенными координатами начала A(aₓ ; aᵧ) и конца В(bₓ ; bᵧ), из чего следует, что вектор имеет координаты (bₓ-aₓ ; bᵧ-aᵧ), поэтому его длину мы выразим в формуле

    При этом формула вычисления длины вектора для трёхмерного пространства, с координатами и ), будет следующей:

    Для прямой системы координат, найти длину вектора ( overrightarrow) , где A(1,√3) B(-3,1)

    Решение
    Применив формулу, для нахождения длины вектора, с известными координатами точек начала и конца, в плоской системе координат, выходит:


    Существует второй вариант решения, где формулы применяются по очереди:


    Ответ:

    Найти, решения, при подстановке которых, длина вектора будет равна корню из тридцати, при координатах точек А (0,1,2) и В (5,2,(λ^2))

    В первую очередь представим длину вектора в виде формулы.
    ( left|vecright|=sqrt<left ( b_x-a_x right )^2+ left ( b_y-a_y right )^2 + left ( b_z-a_z right )^2>)
    (=sqrt <left ( 5-0 right )^2+ left ( 2-1 right )^2 + left ( lambda^2 -2right )^2>= sqrt<26 + left ( lambda^2 -2right )^2>)
    Теперь приравняем полученное выражение к корню из тридцати и найдём неизвестное значение, решив полученное уравнение.
    ( sqrt<26+left(lambda^2-2right)^2>=sqrt <30>)
    ( 26+left(lambda^2-2right)^2=30 )
    ( left(lambda^2-2right)^2=4 )
    ( lambda^2-2=2 ) или ( lambda^2-2=-2 ) ( lambda_1=-2, lambda_2=2, lambda_3=0. )
    Ответ: ( lambda_1=-2, lambda_2=2, lambda_3=0. )

    Длина вектора по теореме косинусов

    Так как бывают случаи, когда не известны координаты точек вектора, необходимо искать другие варианты, при помощи которых можно найти длину вектора. Таким способов может стать применение теоремы косинусов.

    К примеру, нам известны длины двух векторов (overrightarrow) и (overrightarrow) , а также угол между ними, или его косинус. При этом необходимо найти длину вектора ( overrightarrow ) , в таком варианте задания необходимо воспользоваться теоремой косинусов, представив треугольник АВС. В данном треугольнике мы будем искать сторону ВС, она и будет равна длине искомого вектора. Подробнее рассмотрим на примере.

    Даны длины двух векторов ( overrightarrow) и ( overrightarrow) 2 и 4 соответственно, а угол между ними равен ( frac<pi> <3>) . необходимо найти длину ( overrightarrow).

    В нашем примере длины векторов и длины сторон треугольника АМК совпадают. Две из сторон нам известны это АК и АМ, а также известен угол треугольника, находящийся между этими сторонами. Используя теорему косинусов получим:
    ( KM^2=AK^2+AM^2-2cdot AKcdot AMcdotcosfrac<pi><3>)
    (=2^2+4^2-2cdot2cdot4cdotcosfrac<pi><3>)
    (=4+16-16cosfrac<pi><3>)
    (=20-8=12 )
    Получается (KM=sqrt <12>)
    Ответ: ( left|overrightarrowright|=sqrt <12>)

    Теперь мы видим, что для нахождения длины вектора существует несколько формул, которыми можно воспользоваться в зависимости от известных параметров.

    длина вектора формула для трёхмерного пространства;

    длина вектора формула по известным координатам начала и конца вектора находящегося пространстве; ( left|vecright|=sqrt<left ( b_z-a_z right )^2+ left ( b_y-a_y right )^2>) если известны координаты начала и конца вектора на плоскости.

    Существует также формула длины вектора перемещения: ( left|vecright|=sqrt< s_x^2+s_y^2>) чаще такая формула применима в физике, для того чтобы узнать длину пути материальной точки.

    В случае если известен угол, между двумя векторами, можно использовать теорему Пифагора.

    Применение векторов в других сферах

    Понятие и вычисление вектора важно не только в математике, но и других науках:

    • в физике. Для визуального изображения таких понятий как скорость, сила, ускорение и т.д. А также векторы помогают моделировать физические процессы;
    • в химии. Для изображения химических процессор. При помощи векторов изображают движение электронов и других частиц;
    • в биологии. Биологические процессы, также имеют графическое изображение при помощи векторов. К примеру перенос паразитов;
    • географии. Вектором обозначается движение воздушных масс, или течение реки;

    Векторы используются не только в науках, но и различных отраслях и профессиях. В судоходстве и аэрофлоте, архитектуре и конструировании, а также многих других областях. Для того чтобы найти длину вектора, мы можем использовать одну из формул, в зависимости от того, что нам о нём известно, и в каком пространстве или плоскости находится неизвестный вектор.

    Как найти длину вектора

    Формула

    Чтобы найти длину вектора, заданного своими координатами, нужно извлечь корень квадратный из суммы квадратов его координат. Если вектор задан на плоскости и имеет координаты $bar=left(a_ ; a_right)$, его длина вычисляется по формуле:

    Примеры вычисления длины вектора

    Задание. Найти длину вектора $bar=(-3 ; 4)$

    Решение. Для нахождения длины вектора, заданного на плоскости, воспользуемся формулой

    Ответ. $|bar|=5$

    Задание. В пространстве заданы точки $A(3 ;-2 ;-1)$ и $ B(1 ; 2 ;-5)$. Найти длину вектора $overline$

    Решение. Найдем сначала координаты вектора $overline$. Для этого из координат конца вычислим соответствующие координаты начала, получим:

    нахождения длины вектора $overline$ воспользуемся формулой:

    Подставляя в эту формулу координаты вектора, получим

    Ответ. $|overline|=6$

    источники:

    http://www.napishem.ru/spravochnik/matematika/dlina-vektora-osnovnye-formuly.html

    http://www.webmath.ru/poleznoe/formules_13_4.php

    How can I find the minimum value from a vector?

    int main()
    {
        int v[100] = { 5, 14, 2, 4, 6 };
        int n = 5;
        int mic = v[0];
    enter code here
        for (int i=0; i < v[n]; i++)
        {
            if (v[i] < mic)
                mic = v[i];
        }
        cout< < mic;
    }
    

    But is not working, what can I do?

    AustinWBryan's user avatar

    AustinWBryan

    3,2493 gold badges23 silver badges42 bronze badges

    asked Oct 22, 2012 at 16:44

    Cristi DroPs's user avatar

    4

    See std::min_element.

    Examples:

    std::min_element(vec.begin(), vec.end()); // STL containers.
    std::min_element(v, v + n); // C style arrays where n is the number of elements.
    std::min_element(std::begin(v), std::end(v)); // STL containers and C style arrays. 
    

    Note that for the last option, it is better to apply the ‘std 2-step’ pattern so it works for user-defined types as well as standard library types:

    using std::begin, std::end; // Enables argument-dependent lookup: https://en.cppreference.com/w/cpp/language/adl
    std::min_element(begin(v), end(v));
    

    Since C++20, we can also use ranges to avoid having to call begin/end manually:

    std::ranges::min_element(v);
    

    Ayxan Haqverdili's user avatar

    answered Oct 22, 2012 at 16:48

    zabulus's user avatar

    zabuluszabulus

    2,3533 gold badges15 silver badges27 bronze badges

    7

    You can always use the stl:

    auto min_value = *std::min_element(v.begin(),v.end());
    

    Humam Helfawi's user avatar

    Humam Helfawi

    19.4k14 gold badges80 silver badges159 bronze badges

    answered Oct 22, 2012 at 16:58

    acrube's user avatar

    acrubeacrube

    7711 gold badge5 silver badges5 bronze badges

    1

    #include <iostream>
    #include <vector>
    #include <algorithm> // std::min_element
    #include <iterator>  // std::begin, std::end
    
    int main() {
        std::vector<int> v = {5,14,2,4,6};
        auto result = std::min_element(std::begin(v), std::end(v));
        if (std::end(v)!=result)
            std::cout << *result << 'n';
    }
    

    The program you show has a few problems, the primary culprit being the for condition: i<v[n]. You initialize the array, setting the first 5 elements to various values and the rest to zero. n is set to the number of elements you explicitly initialized so v[n] is the first element that was implicitly initialized to zero. Therefore the loop condition is false the first time around and the loop does not run at all; your code simply prints out the first element.

    Some minor issues:

    • avoid raw arrays; they behave strangely and inconsistently (e.g., implicit conversion to pointer to the array’s first element, can’t be assigned, can’t be passed to/returned from functions by value)

    • avoid magic numbers. int v[100] is an invitation to a bug if you want your array to get input from somewhere and then try to handle more than 100 elements.

    • avoid using namespace std; It’s not a big deal in implementation files, although IMO it’s better to just get used to explicit qualification, but it can cause problems if you blindly use it everywhere because you’ll put it in header files and start causing unnecessary name conflicts.

    answered Oct 22, 2012 at 16:48

    bames53's user avatar

    bames53bames53

    85.5k15 gold badges177 silver badges243 bronze badges

    2

    You have an error in your code. This line:

    for (int i = 0;i < v[n]; i++)
    

    should be

    for (int i = 0;i < n; i++)
    

    because you want to search n places in your vector, not v[n] places (which wouldn’t mean anything)

    AustinWBryan's user avatar

    AustinWBryan

    3,2493 gold badges23 silver badges42 bronze badges

    answered Oct 22, 2012 at 16:49

    alestanis's user avatar

    alestanisalestanis

    21.5k4 gold badges47 silver badges66 bronze badges

    1

    template <class ForwardIterator>
    ForwardIterator min_element ( ForwardIterator first, ForwardIterator last )
    {
        ForwardIterator lowest = first;
        if (first == last) 
            return last;
    
        while (++first != last)
        if (*first < *lowest) 
            lowest = first;
        return lowest;
    }
    

    AustinWBryan's user avatar

    AustinWBryan

    3,2493 gold badges23 silver badges42 bronze badges

    answered Oct 22, 2012 at 17:26

    lovaya's user avatar

    lovayalovaya

    4353 silver badges3 bronze badges

    1

    Try this with

     std::min_element(v.begin(),v.end())
    

    answered Oct 22, 2012 at 16:49

    Rahul Tripathi's user avatar

    Rahul TripathiRahul Tripathi

    167k31 gold badges277 silver badges330 bronze badges

    #include <iostream>
    int main()
    {
        int v[100] = {5,14,2,4,6};
        int n = 5;
        int mic = v[0];
        for(int i = 0; i != n; ++i)
        {
            if(v[i] < mic)
            mic = v[i];
        }
        std:cout << mic << std::endl;;
    }
    

    answered Oct 22, 2012 at 17:30

    lovaya's user avatar

    lovayalovaya

    4353 silver badges3 bronze badges

    UCHEES.RU — помощь студентам и школьникам


    В 17:06 поступил вопрос в раздел ЕГЭ (школьный), который вызвал затруднения у обучающегося.

    Вопрос вызвавший трудности

    Даны векторы   а(3; -4),  b(-2; 7),  с(-6; y).   Найдите наименьшее значение модуля вектора а + b -с.

    Ответ подготовленный экспертами Учись.Ru

    Для того чтобы дать полноценный ответ, был привлечен специалист, который хорошо разбирается требуемой тематике «ЕГЭ (школьный)». Ваш вопрос звучал следующим образом: Даны векторы   а(3; -4),  b(-2; 7),  с(-6; y).   Найдите наименьшее значение модуля вектора а + b -с.

    После проведенного совещания с другими специалистами нашего сервиса, мы склонны полагать, что правильный ответ на заданный вами вопрос будет звучать следующим образом:

    решение задания по геометрии
     

    НЕСКОЛЬКО СЛОВ ОБ АВТОРЕ ЭТОГО ОТВЕТА:

    Работы, которые я готовлю для студентов, преподаватели всегда оценивают на отлично. Я занимаюсь написанием студенческих работ уже более 4-х лет. За это время, мне еще ни разу не возвращали выполненную работу на доработку! Если вы желаете заказать у меня помощь оставьте заявку на этом сайте. Ознакомиться с отзывами моих клиентов можно на этой странице.

    Рыбакова Фия Мироновна — автор студенческих работ, заработанная сумма за  прошлый месяц 59 632 рублей. Её работа началась с того, что она просто откликнулась на эту вакансию

    ПОМОГАЕМ УЧИТЬСЯ НА ОТЛИЧНО!

    Выполняем ученические работы любой сложности на заказ. Гарантируем низкие цены и высокое качество.

    Деятельность компании в цифрах:

    Зачтено оказывает услуги помощи студентам с 1999 года. За все время деятельности мы выполнили более 400 тысяч работ. Написанные нами работы все были успешно защищены и сданы. К настоящему моменту наши офисы работают в 40 городах.

    РАЗДЕЛЫ САЙТА

    Ответы на вопросы — в этот раздел попадают вопросы, которые задают нам посетители нашего сайта. Рубрику ведут эксперты различных научных отраслей.

    Полезные статьи — раздел наполняется студенческой информацией, которая может помочь в сдаче экзаменов и сессий, а так же при написании различных учебных работ.

    Красивые высказывания — цитаты, афоризмы, статусы для социальных сетей. Мы собрали полный сборник высказываний всех народов мира и отсортировали его по соответствующим рубрикам. Вы можете свободно поделиться любой цитатой с нашего сайта в социальных сетях без предварительного уведомления администрации.

    ЗАДАТЬ ВОПРОС

    НОВЫЕ ОТВЕТЫ

    • Абадзехская стоянка, Даховская пещера. ..
    • По закону сохранения заряда каждый шарик после соприкасl..
    • 2)прогудел первый мохнатый шмель 3) Зазвенела Прогудел 4) ..
    • В мілкій траві ворушаться сліди веселих, сполоханих доще
      ..

    ПОХОЖИЕ ВОПРОСЫ

    • Даны точки А (4; 1)и В (-2; -3). Найдите координаты точки С такой, что СА + СВ = 0
    • Диагонали параллелограмма ABCD пересекаются в точке О (рис. 14). Выразите векторы АВ и AD через векторы СО = а и ВО = b.
    • Найдите координаты векторов т и п, если их сумма имеет координаты (5; -2), а разность — (7; 5).

    Площадка Учись.Ru разработана специально для студентов и школьников. Здесь можно найти ответы на вопросы по гуманитарным, техническим, естественным, общественным, прикладным и прочим наукам. Если же ответ не удается найти, то можно задать свой вопрос экспертам. С нами сотрудничают преподаватели школ, колледжей, университетов, которые с радостью помогут вам. Помощь студентам и школьникам оказывается круглосуточно. С Учись.Ru обучение станет в несколько раз проще, так как здесь можно не только получить ответ на свой вопрос, но расширить свои знания изучая ответы экспертов по различным направлениям науки.


    2020 — 2023 — UCHEES.RU

    Понравилась статья? Поделить с друзьями:
  • Как найти игру в dead by daylight
  • Как исправить ошибку этот сайт не может обеспечить безопасное соединение на телефоне
  • Как составить схемы модели слов
  • Как найти время для мечты
  • Ноутбук что это за ошибка как исправить