вывести результат на экран. поменять местами первый отрицательный и последний положительный элементы массива. вывести езультат на экран. учесть возможность отсутствия в массиве отрицательных и положительных элементов
По порядку
- генерировать массив A
for i:=1 to 15 do a[i]:=random(200)-100;
- найти первый отрицательный
first_minus:=0; for i:=1 to 15 do begin if a[i] < 0 then begin first_minus:=i; break; end; end;
- убедиться что отрицательное число встретилось
if first_minus = 0 then writeln('нет отрицательного числа в массиве!');
- найди последний положительный
last_plus:=0; for i:=15 downto 1 do begin if a[i] > 0 then begin last_plus:=i; break; end; end;
- убедиться что положительное число встретилось
if last_plus = 0 then writeln('нет положительного числа в массиве!');
- поменять местами найденые элементы
temp:=a[first_minus]; a[first_minus]:=a[last_plus]; a[last_plus]:=temp;
-----
const N = 10; var a: array [1..N] of integer; i: integer; first_minus: integer; last_plus: integer; temp: integer; begin {init random} for i:=1 to N do a[i]:=random(100)-50; write(' начальные данные: '); for i:=1 to N do write(a[i]:4); writeln; first_minus := -1; for i:=1 to N do begin if a[i] < 0 then begin first_minus:=i; break; end; end; if first_minus = -1 then begin writeln('нет отрицательных элементов'); exit; end; last_plus := -1; for i:=N downto 1 do begin if (a[i] > 0) then begin last_plus:=i; break; end; end; if last_plus = -1 then begin writeln('нет положительных элементов'); exit; end; temp:=a[first_minus]; a[first_minus]:=a[last_plus]; a[last_plus]:=temp; write('после перестановки: '); for i:=1 to N do write(a[i]:4); writeln; end.
вывод
начальные данные: 29 3 28 -7 -3 40 -44 46 6 -14 после перестановки: 29 3 28 6 -3 40 -44 46 -7 -14
Комментариев нет:
Отправить комментарий