Разработать функцию,которая находит 2 наибольших элемента массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Разработать функцию,которая находит 2 наибольших элемента массива»

textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
int main () {
    int n;
    printf ("n\n");
    scanf ("%i",&n);
    int max;
    int max2;
    int j=0;
    int* mas = (int*)malloc(n*(sizeof(int)));
    for (int i=0; i<n; i++) {
    scanf ("%i",&mas[i]);
    }
    max = mas[0];
    max2 = mas[0];
    for (int i=0; i<n; i++) {
        if (mas[i] > max) {
            max = mas[i];
            j=i;
        }
    } // находим самый большой, запоминаем индекс j
    if (max == mas[0]) {
        max2 = mas[1]; // для того, чтобы первый и второй максимальный элементы не совпадали
    }
    for (int i=0; i<n; i++) {
        if ((i != j)) { // чтобы не брать еще раз максимальный элемент
        if ((mas[i] >= max2) && (mas[i] <= max)) {
            max2 = mas[i];
            }
        }
    }
        printf ("%i %i",max,max2);
        getch();
        return 0;
        free(mas);
    }

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

В этом коде:

  1. Объявлены переменные:
    • n - количество элементов в массиве (input);
    • max - первый максимальный элемент;
    • max2 - второй максимальный элемент;
    • j - индекс первого максимального элемента;
    • mas - указатель на начало массива.
  2. Запрашивается значение n и сохраняется в переменной n.
  3. Выделяется память под массив mas с помощью malloc.
  4. Заполняется массив mas с помощью scanf.
  5. Первый максимальный элемент и второй максимальный элемент инициализируются значением первого элемента массива.
  6. Происходит поиск первого максимального элемента, его индекса.
  7. Если первый максимальный элемент не совпадает со вторым, то второй максимальный элемент присваивается значению первого элемента, следующему за первым максимальным.
  8. Происходит поиск второго максимального элемента, начиная с элементов, которые меньше первого максимального элемента и больше или равны второму максимальному.
  9. Выводятся значения первого и второго максимального элемента.
  10. Вводится символ для подтверждения выполнения программы.
  11. Выполняется функция free, освобождающая память, выделенную под массив.
  12. Программа завершается.

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


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

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

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