Дан массив целых чисел из n элементов заполненный случайным образом числами из промежутка (-100 200). найти сумму отрицательных элементов 2) найти номер последней пары соседних элементов с разными знаками)
Var a: array [1..6] of integer; i,max1,max2,sum: integer; begin Randomize; for i:=1 to 6 do begin a[i]:=Random (300)-100; sum:=sum+a[i]; write(a[i]:4); end; for i:=1 to 5 do if ((a[i]<0) and (a[i+1]>0)) or ((a[i+1]>0) and (a[i]<0)) then begin max1:=i; max2:=i+1; end; writeln(); Write('Индексы чисел из пары соседних элементов с разными знаками: ',max1,max2:3); end. abc pascal
Я бы сделал так: Загоняем все 5 чисел в массив. Делаем сортировку. В итоге получаем, что в массиве в интервале massiv[0]..massiv[3] будут лежать минимальные числа. Берем их, суммируем, получаем минимально возможную сумму. Аналогично и с максимальной, только суммировать будем с massiv[1]..massiv[4].
Код будет примерно такой: int max_possible_sum(char *massiv[5]){ for (int i = 1; i <5; ++i) { int sum += massiv[i]; } return sum; }
Аналогично и для самой малой суммы: int min_possible_sum(char *massiv[5]){ for (int i = 0; i <4; ++i) { int sum += massiv[i]; } return sum; }
Я бы сделал так: Загоняем все 5 чисел в массив. Делаем сортировку. В итоге получаем, что в массиве в интервале massiv[0]..massiv[3] будут лежать минимальные числа. Берем их, суммируем, получаем минимально возможную сумму. Аналогично и с максимальной, только суммировать будем с massiv[1]..massiv[4].
Код будет примерно такой: int max_possible_sum(char *massiv[5]){ for (int i = 1; i <5; ++i) { int sum += massiv[i]; } return sum; }
Аналогично и для самой малой суммы: int min_possible_sum(char *massiv[5]){ for (int i = 0; i <4; ++i) { int sum += massiv[i]; } return sum; }
i,max1,max2,sum: integer;
begin
Randomize;
for i:=1 to 6 do begin
a[i]:=Random (300)-100;
sum:=sum+a[i];
write(a[i]:4);
end;
for i:=1 to 5 do
if ((a[i]<0) and (a[i+1]>0)) or ((a[i+1]>0) and (a[i]<0)) then begin
max1:=i;
max2:=i+1;
end;
writeln();
Write('Индексы чисел из пары соседних элементов с разными знаками: ',max1,max2:3);
end.
abc pascal