У стандартной библиотеки плюсов с этим все хорошо. Если тебе нужна сверхточность, то придется использовать длинную арифметику и вычислять экспоненту через ряд Тейлора: либо для компьютерных вычислений гораздо эффективнее так(точность выше) этот ряд быстрее сходится
var a: array[1..n1, 1..m1] of integer; b: array[1..m1] of integer; i, j, m, n: integer;
begin Write('Введите через пробел число строк и столбцов массива: '); Readln(n, m); Randomize; Writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to m do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end; Writeln end; Writeln('Сформированный массив'); for j := 1 to m do begin i := 1; while (i <= n) and (a[i, j] >= 0) do i := i + 1; if i <= n then b[j] := a[i, j] else b[j] := -99; Write(b[j]:4) end; Writeln end.