Намиране на най-голям елемент в масив

В този пример ще разгледаме функция, която намира най-големия елемент в даден масив

Функцията приема два аргумента: името на масива от int елементи и неговия размер. За размер на масива използваме unsigned short. Избрали сме unsigned защото размера на все един масив не може да бъде отрицателно число.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//функцията трябва да връща същият тип стойност, какъвто е и типа на елементите в масива
int findMaxInArray(int arr[], unsigned short arraySize)
{
  //създаваме текущ максимум, който приема стойността на първият елемент на масива
  int max = arr[0];
  //обикаляме масива (започваме от елемент номер 1, с цел да не правим излишна проверка) търсейки по-голям елемент от текущия максимум
  for (unsigned short i = 1; i < arraySize; i++)
  {
    if(max < arr[i])
    {
      //ако намерим по-голям елемент от текущия максимум, променяме стойността на текущия максимум на намерената по-голяма стойност
      max = arr[i];
    }
  }
return max;
}

Ако желаем нашата функция да работи със всякакви масиви, а не само от тип int, бихме могли да използваме template. Така типа на елементите в масива ще се определи чак при извикване на функцията.

1
2
3
4
5
6
7
8
9
10
11
12
13
//функцията трябва да връща същият тип стойност, какъвто е и типа на елементите в масива. В нашия случай това е Т
template <typename T> findMaxInArray(T arr[], unsigned short arraySize)
{
  T max = arr[0];
  for (unsigned short i = 1; i < arraySize; i++)
  {
    if(max < arr[i])
    {
      max = arr[i];
    }
  }
return max;
}

ЗАБЕЛЕЖКА:
Не е добра практика да се пишат коментари на Кирилица, но за нашите нужди (да бъде по-достъпно и разбираемо) ще използваме именно Кирилица.