Программа на языке C для поиска наибольшего числа в массиве: объяснение нескольких методов

Вот программа на C, которая печатает наибольшее число в массиве:

#include <stdio.h>
int main() {
    int array[] = {10, 5, 8, 20, 15};
    int size = sizeof(array) / sizeof(array[0]);
    int largest = array[0];
    for (int i = 1; i < size; i++) {
        if (array[i] > largest) {
            largest = array[i];
        }
    }
    printf("The largest number in the array is: %d\n", largest);
    return 0;
}

В этой программе мы инициализируем массив некоторыми числами. Затем мы вычисляем размер массива по формуле sizeof(array) / sizeof(array[0]). Мы предполагаем, что массив содержит хотя бы один элемент, поэтому присваиваем значение первого элемента переменной largest. Далее мы перебираем массив, начиная со второго элемента, и сравниваем каждый элемент с самым большим. Если мы находим элемент больше, чем самый большой, мы соответствующим образом обновляем значение самый большой. Наконец, мы печатаем значение largest, которое представляет наибольшее число в массиве.

Вот несколько альтернативных способов найти наибольшее число в массиве:

  1. Использование цикла while:

    int i = 1;
    while (i < size) {
        if (array[i] > largest) {
            largest = array[i];
        }
        i++;
    }
  2. Использование цикла do- while:

    int i = 1;
    do {
        if (array[i] > largest) {
            largest = array[i];
        }
        i++;
    } while (i < size);
  3. Сортировка массива по убыванию и выбор первого элемента:

    // Assuming you have a sorting algorithm implemented
    // that sorts the array in descending order
    sortDescending(array, size);
    largest = array[0];
  4. Использование рекурсии:

    int findLargest(int array[], int size, int index, int largest) {
        if (index == size) {
            return largest;
        }
        if (array[index] > largest) {
            largest = array[index];
        }
        return findLargest(array, size, index + 1, largest);
    }
    
    largest = findLargest(array, size, 0, largest);

Обратите внимание, что для работы методов 3 и 4 вам потребуется реализовать необходимые функции (sortDescendingи findLargest), чтобы они работали.