Заменить элементы массива на противоположные
Дан массив, содержащий положительные и отрицательные числа. Заменить все элементы массива на противоположные по знаку.
Например, задан массив [1, -5, 0, 3, -4]. После преобразования должно получиться [-1, 5, 0, -3, 4].
Чтобы поменять элемент на противоположный, достаточно умножить его на -1.
const N = 10;
var
arr: array[1..N] of integer;
i: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(100) - 50;
write(arr[i]:4);
end;
writeln;
for i:=1 to N do
arr[i] := -1 * arr[i];
for i:=1 to N do
write(arr[i]:4);
writeln;
end.
Задача может быть сформулирована так: заменить первые K элементов на противоположные по знаку. В данном случае перебирать элементы и менять на противоположные нужно до K включительно.
const N = 15;
var
arr: array[1..N] of integer;
i, k: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(100) - 50;
write(arr[i]:4);
end;
writeln;
write('Введите k <= ', N, ': ');
readln(k);
if k > N then exit;
for i:=1 to k do arr[i] := -1 * arr[i];
for i:=1 to N do
write(arr[i]:4);
writeln;
end.