Как найти максимальный элемент массива c функция

I am trying to find the ‘biggest’ element in a user made array ,by using the max function from the algorithm library/header.

I have done some research on the cplusplus reference site but there I only saw how to compare two elements using the max function. Instead I am trying to display the maximum number using a function ‘max’ ,without having to make a ‘for’ loop to find it.

For example:

Array: array[]={0,1,2,3,5000,5,6,7,8,9}
Highest value: 5000

I have made this code but it gives me a bunch of errors, which can be the issue?

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int array[11];
    int n = 10;
    for (int i = 0; i < n; i++) {
       array[i] = i;
    }
    array[5] = 5000;
    max(array , array + n);
    for (int i = 0; i < n; i++)
        cout << array[i] << " ";
    return 0;
}

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given an array, write functions to find the minimum and maximum elements in it. 

    Example:

    C++

    #include <bits/stdc++.h>

    using namespace std;

    int getMin(int arr[], int n)

    {

        int res = arr[0];

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

            res = min(res, arr[i]);

        return res;

    }

    int getMax(int arr[], int n)

    {

        int res = arr[0];

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

            res = max(res, arr[i]);

        return res;

    }

    int main()

    {

        int arr[] = { 12, 1234, 45, 67, 1 };

        int n = sizeof(arr) / sizeof(arr[0]);

        cout << "Minimum element of array: " << getMin(arr, n)

             << " ";

        cout << "Maximum element of array: " << getMax(arr, n);

        return 0;

    }

    Output: 

    Minimum element of array: 1
    Maximum element of array: 1234

    Time Complexity: O(n)

    Auxiliary Space: O(1), as no extra space is used

    Recursive Solution 

    Example:

    C++

    #include <bits/stdc++.h>

    using namespace std;

    int getMin(int arr[], int n)

    {

        return (n == 1) ? arr[0] : min(arr[0], 

                             getMin(arr + 1, n - 1));

    }

    int getMax(int arr[], int n)

    {

        return (n == 1) ? arr[0] : max(arr[0], 

                              getMax(arr + 1, n - 1));

    }

    int main()

    {

        int arr[] = { 12, 1234, 45, 67, 1 };

        int n = sizeof(arr) / sizeof(arr[0]);

        cout << "Minimum element of array: " << 

                                getMin(arr, n) << " ";

        cout << "Maximum element of array: " << 

                                       getMax(arr, n);

        return 0;

    }

    Output: 

    Min of array: 1
    Max of array: 1234

    Time Complexity: O(n)

    Auxiliary Space: O(n), as implicit stack is used due to recursion

    Using Library functions: 
    We can use min_element() and max_element() to find minimum and maximum of array. 

    Example:

    C++

    #include <bits/stdc++.h> 

    using namespace std; 

    int getMin(int arr[], int n) 

        return *min_element(arr, arr + n); 

    int getMax(int arr[], int n) 

        return *max_element(arr, arr + n); 

    int main() 

        int arr[] = { 12, 1234, 45, 67, 1 }; 

        int n = sizeof(arr) / sizeof(arr[0]); 

        cout << "Minimum element of array: " << getMin(arr, n) << " "

        cout << "Maximum element of array: " << getMax(arr, n); 

        return 0; 

    Output:

    Minimum element of array: 1
    Maximum element of array: 1234

    Time Complexity: O(n)

    Auxiliary Space: O(1), as no extra space is used

    Please write comments if you find anything incorrect, or if you want to share more information about the topic discussed above. 

    Last Updated :
    17 Jan, 2023

    Like Article

    Save Article

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

    1. Наивное решение

    Наивное решение — написать собственную процедуру для этой простой задачи. Идея состоит в том, чтобы линейно пройти массив, используя простой цикл for или цикл for на основе диапазона. Затем для каждого обнаруженного элемента мы сравниваем его с минимальным или максимальным элементом, найденным до сих пор, и заменяем максимальный элемент, найденный до сих пор, текущим элементом, если он меньше по значению, и минимальный элемент, найденный до сих пор, текущим элементом, если он больше по стоимости.

    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

    #include <iostream>

    #include <climits>

    #include <algorithm>

    using namespace std;

    int main()

    {

        int arr[] = { 4, 2, 1, 6, 8, 5 };

        int min = INT_MAX, max = INT_MIN;

        for (int i: arr)

        {

            if (i < min) {

                min = i;

            }

            if (i > max) {

                max = i;

            }

        }

        std::cout << «The min element is « << min << std::endl;

        std::cout << «The max element is « << max << std::endl;

        return 0;

    }

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

    результат:

    The min element is -8
    The max element is 6

    2. Использование minmax_element() функция

    Рекомендуемое решение — использовать std::minmax_element найти наименьший и наибольший элементы массива. Он возвращает пару итераторов, первое значение которых указывает на минимальный элемент, а второе значение указывает на максимальный элемент. Он определен в <algorithm> заголовок.

    #include <iostream>

    #include <algorithm>

    using namespace std;

    int main()

    {

        int arr[] = { 4, 2, 1, 6, 8, 5 };

        std::pair<int*, int*> minmax = std::minmax_element(std::begin(arr), std::end(arr));

        std::cout << «The min element is « << *(minmax.first) << std::endl;

        std::cout << «The max element is « << *(minmax.second) << std::endl;

        return 0;

    }

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

    результат:

    The min element is -8
    The max element is 6

    3. Использование min_element() с max_element() функция

    Стандартная библиотека C++ также предоставляет отдельные функции. min_element() а также max_element() чтобы найти наименьший и наибольший элементы в массиве соответственно.

    #include <iostream>

    #include <algorithm>

    using namespace std;

    int main()

    {

        int arr[] = { 4, 2, 1, 6, 8, 5 };

        int *min = std::min_element(std::begin(arr), std::end(arr));

        int *max = std::max_element(std::begin(arr), std::end(arr));

        std::cout << «The min element is « << *min << std::endl;

        std::cout << «The max element is « << *max << std::endl;

        return 0;

    }

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

    результат:

    The min element is -8
    The max element is 6

    Вот и все, что касается нахождения минимального и максимального значений в массиве в C++.

    0 / 0 / 0

    Регистрация: 26.10.2010

    Сообщений: 19

    1

    Функция нахождения максимального элемента массива

    26.10.2010, 14:46. Показов 44659. Ответов 6


    Студворк — интернет-сервис помощи студентам

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



    0



    Эксперт С++

    2347 / 1720 / 148

    Регистрация: 06.03.2009

    Сообщений: 3,675

    26.10.2010, 15:16

    2

    Вы думаете ваша задача очень оригинальна? Тема обсуждалась не раз. Пользуйтесь поиском по форуму.



    0



    MILAN

    899 / 793 / 186

    Регистрация: 21.02.2009

    Сообщений: 1,722

    26.10.2010, 17:32

    3

    C++
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    #include <iostream>
    #include <ctime>
     
    using std::cout;
    using std::cin;
    using std::endl;
     
    int maximum(int *arr, int size)
    {
       int max;
       max = arr[0];
       for(int i=0; i<size; i++)
        {
            if(arr[i]>max)
            {
                max = arr[i];
            }
        }
      return max;
    }
     
     
    int main ()
    {
         srand((unsigned int)time(NULL));
         int size1, size2;
         int *arr1,*arr2;
         setlocale( LC_ALL,"Russian" );
         cout<<"Введите длину первого массива: ";
         cin>>size1;
         arr1 = new int[size1];
         cout<<endl<<"Введите длину второго массива: ";
         cin>>size2;
         arr2 = new int[size2];
         cout<<"Первый массив: ";
         for(int i=0; i<size1; i++)
         {
             arr1[i]=rand()%9;
             cout<<arr1[i]<<"  ";
         }
         cout<<endl<<"Максимум - "<<(maximum(arr1,size1))<<endl;
         cout<<"Второй массив: ";
         for(int i=0; i<size2; i++)
         {
             arr2[i]=rand()%9;
             cout<<arr2[i]<<"  ";
         }
         cout<<endl<<"Максимум - "<<(maximum(arr2,size2))<<endl;
         delete [] arr1;
         delete [] arr2;
         
         system("PAUSE");
         return EXIT_SUCCESS;
    }



    1



    ForEveR

    В астрале

    Эксперт С++

    8048 / 4805 / 655

    Регистрация: 24.06.2010

    Сообщений: 10,562

    26.10.2010, 17:37

    4

    C++
    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
    
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    #include <algorithm>
     
    int max(int* Arr, int N)
    {
        return *std::max_element(Arr, Arr+N);
    }
    int main()
    {
        srand(static_cast<unsigned>(time(0)));
        int N;
        int* Arr;
        std::cout<<"Enter N: ";
        std::cin>>N;
        Arr=new int[N];
        for(int i=0; i<N; ++i)
            Arr[i]=rand();
        std::cout<<max(Arr, N)<<'n';
        delete[] Arr;
        int* NewArr;
        int M;
        std::cout<<"Enter M: ";
        std::cin>>M;
        NewArr=new int[M];
        for(int i=0; i<M; ++i)
           NewArr[i]=rand();
        std::cout<<max(NewArr, N)<<'n';
        delete [] NewArr;
        return 0;
    }



    0



    papochka

    33 / 33 / 0

    Регистрация: 14.11.2009

    Сообщений: 137

    26.10.2010, 18:19

    5

    Цитата
    Сообщение от Lavroff
    Посмотреть сообщение

    C++
    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
    
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    #include <algorithm>
     
    int max(int* Arr, int N)
    {
        return *std::max_element(Arr, Arr+N);
    }
    int main()
    {
        srand(static_cast<unsigned>(time(0)));
        int N;
        int* Arr;
        std::cout<<"Enter N: ";
        std::cin>>N;
        Arr=new int[N];
        for(int i=0; i<N; ++i)
            Arr[i]=rand();
        std::cout<<max(Arr, N)<<'n';
        delete[] Arr;
        int* NewArr;
        int M;
        std::cout<<"Enter M: ";
        std::cin>>M;
        NewArr=new int[M];
        for(int i=0; i<M; ++i)
           NewArr[i]=rand();
        std::cout<<max(NewArr, N)<<'n';
        delete [] NewArr;
        return 0;
    }

    а не так?

    C++
    1
    
        std::cout<<max(NewArr, M)<<'n';

    ?



    1



    В астрале

    Эксперт С++

    8048 / 4805 / 655

    Регистрация: 24.06.2010

    Сообщений: 10,562

    26.10.2010, 18:25

    6

    papochka, Ага. Не заметил.



    0



    0 / 0 / 0

    Регистрация: 26.10.2010

    Сообщений: 19

    28.10.2010, 20:09

     [ТС]

    7

    Всем большое спасибо, буду разбираться



    0



    Нахождение максимального элемента массива

    Из этой небольшой заметки вы узнаете, как найти максимальный элемент массива с помощью языка c#

    Вообще данную задачу можно решить множеством различных способов, так например, для нахождения максимального элемента массива мы можем использовать обычную сортировку, например, воспользуемся статическим методом Sort класса Array:

    Код:

    int [] ar = {67,34,3,8,35,23};
    Array.Sort(ar);
    int maxValue = ar[ar.Length-1];
    //Результат: 67

    Либо та же сортировка, но только в результате максимальный элемент будет самым первым, например:

    Код:

    int [] ar = { -1, -5, 0, 108, 34, 35, 21 };
    int maxValue = ar.OrderByDescending(x => x).First();
    //Результат: 108

    Также в языке c# существует очень простой и компактный способ, который позволяет быстро найти максимальный элемент в массиве, для этого всего лишь нужно воспользоваться методом расширения Max, например:

    Код:

    int [] ar = {67,34,3,8,35,23};
    int maxValue = ar.Max<int>();
    //Результат: 67

    Для многомерного массива:

    Код:

    int [,] numbers = {{270, 3, 62, 91, 2, 178},{22, 32, 65, 69, 8, 6}};
    int maxValue = numbers.Cast<int>().Max();
    //Результат: 270

    Для jagged массива:

    Код:

    int [][] numbers = { new int [] {177,130,50,7,9},
    new int [] {37,41,6,94},
    new int [] {112,22,77,55}};
    int maxValue = numbers.SelectMany(y => y).Max();
    //Результат: 177

    Читайте также:

    • Как изменить данные в файле манифест
    • C# Как переименовать файл?
    • Mysql метод ExecuteScalar

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