Дан массив A(N, M). Найти среднее арифметическое элементов находящихся между max и min элементов массива - Turbo Pascal
Формулировка задачи:
Решение задачи: «Дан массив A(N, M). Найти среднее арифметическое элементов находящихся между max и min элементов массива»
const N = 3; M = 4; a: array[1.. N, 1.. M] of integer = ((2, 3, 4, 5), (0, 3, 4, 5), (7, 9, 1, 1)); var i, j, k: integer; s: real; imin, imax: integer; begin imin := 0; imax := 0; for i := 1 to n do for j := 1 to m do begin if a[imin div M + 1, imin mod M + 1] > a[i, j] then imin := pred(i) * M + pred(j); if a[imax div M + 1, imax mod M + 1] < a[i, j] then imax := pred(i) * M + pred(j); end; k := abs(imin - imax); if k > 1 then begin s := 0; for i := ((imin + imax - k) div 2) + 1 to ((imin + imax + k) div 2) - 1 do s := s + a[i div M + 1, i mod M + 1]; writeln('Среднее = ', s / (k - 1):0:3); end else writeln('Между минимумом и максимумом нет элементов') end.
Объяснение кода листинга программы
Данный код написан на языке Turbo Pascal и решает задачу поиска среднего арифметического элементов массива, находящихся между максимальным и минимальным элементами. В начале кода объявляются необходимые переменные: N, M, a, i, j, k, s, imin и imax. Затем происходит инициализация переменных: imin устанавливается равным 0, а imax - равным 0. Далее, происходит поиск минимального и максимального элементов массива с помощью циклов for. После этого вычисляется разница между минимальным и максимальным элементами, и если она больше 1, то начинается следующий блок кода. В этом блоке происходит суммирование элементов массива, находящихся между минимальным и максимальным элементами. Затем, вычисляется среднее арифметическое путем деления суммы на разницу между максимальным и минимальным элементами. Если разница между минимальным и максимальным элементами меньше или равна 1, то выводится сообщение о том, что между минимальным и максимальным элементами нет элементов. В конце кода выводится среднее арифметическое на экран.