Поиск максимальных элементов одномерных массивов - C (СИ)

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

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

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

Решение задачи: «Поиск максимальных элементов одномерных массивов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
float max_arr(float *arr, int n)
{
    int i;
    float max = arr[0];
    
    for(i=1;i<n;i++)
        if(arr[i] > max)
            max = arr[i];
        
    return max; 
}
 
 
int main()
{
    float *a, *b;
    int i,n;
    
    printf("n = ");
    scanf("%d", &n);
    
    if(n<=0 || n>30)
        return 1;
    
    a = calloc(n, sizeof(*a));
    b = calloc(n, sizeof(*b));
    
    printf("Input a:\n");
    for(i=0;i<n;i++)
        scanf("%f",&a[i]);
    
    printf("Input b:\n");
    for(i=0;i<n;i++)
        scanf("%f",&b[i]);
    
    printf("(max_a + max_b) / 2 = %f", (max_arr(a,n) + max_arr(b,n))/2.0);
    free(a);
    free(b);
    
    return 0;
}

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

  1. В функции max_arr ищется максимальное значение в массиве arr с помощью цикла for.
  2. Переменная max инициализируется значением первого элемента массива arr.
  3. Затем происходит сравнение каждого элемента массива с переменной max. Если текущий элемент больше max, то он становится новым значением max.
  4. В функции main происходит запрос на ввод количества элементов массива n.
  5. Затем происходит проверка на корректность введенного значения n. Если оно некорректно, программа завершается с кодом ошибки 1.
  6. С помощью функции calloc выделяется память под два массива a и b по n элементов каждый.
  7. Затем происходит запрос на ввод значений для массивов a и b.
  8. Вызывается функция max_arr для поиска максимального значения в массивах a и b.
  9. Результат вычисления (max_arr(a,n) + max_arr(b,n))/2 выводится на экран.
  10. С помощью функции free освобождается память, выделенная под массивы a и b.
  11. Программа завершается с кодом 0, указывающим на успешное выполнение.

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


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

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

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