Поиск максимальных элементов одномерных массивов - 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; }
Объяснение кода листинга программы
- В функции
max_arr
ищется максимальное значение в массивеarr
с помощью циклаfor
. - Переменная
max
инициализируется значением первого элемента массиваarr
. - Затем происходит сравнение каждого элемента массива с переменной
max
. Если текущий элемент большеmax
, то он становится новым значениемmax
. - В функции
main
происходит запрос на ввод количества элементов массиваn
. - Затем происходит проверка на корректность введенного значения
n
. Если оно некорректно, программа завершается с кодом ошибки 1. - С помощью функции
calloc
выделяется память под два массиваa
иb
поn
элементов каждый. - Затем происходит запрос на ввод значений для массивов
a
иb
. - Вызывается функция
max_arr
для поиска максимального значения в массивахa
иb
. - Результат вычисления
(max_arr(a,n) + max_arr(b,n))/2
выводится на экран. - С помощью функции
free
освобождается память, выделенная под массивыa
иb
. - Программа завершается с кодом 0, указывающим на успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д