Предмет: Информатика, автор: nreintaw

дан массив а из n целых чисел ,сортировать нечетные элементы массива в порядке убывания(Паскаль)

Ответы

Автор ответа: Segrif
0
const n = 5;
var
  a: array [1..n] of integer;
  i,l,m,k: integer;
begin
  for i := 1 to n do read(a[i]);
  l := 1;
  while l < n do
    begin
    while (a[l] mod 2 = 0) and (l < n) do l := l + 1;
    if l < n then
      begin
      k := l;
      m := a[l];
      for i := l+1 to n do
        if a[i] mod 2 <> 0 then
        if a[i] > m then
          begin
          m := a[i];
          k := i
          end;
      a[k] := a[l];
      a[l] := m;
      l := l + 1
      end;
    end;
  for i := 1 to n do write(a[i],' ')
end.
Автор ответа: Аноним
0
Кто-то поспешил с отметкой лучшего ответа. Введите значения 1 48 -7 -15 13 и получите неверный ответ 13 48 1 -15 -7
Автор ответа: Segrif
0
Действительно, спасибо. В строке " if a[i] mod 2 = 1 then " нужно заменить "= 1" на "<> 0". (так как mod для отрицательного a[i] тоже отрицательный)
Похожие вопросы
Предмет: Математика, автор: katyalebedeva2