Дан одномерный массив целого типа. Получить другой массив, состоящий только из нечетных...

+345 голосов
3.7m просмотров

Дан одномерный массив целого типа. Получить другой массив, состоящий только из нечетных чисел исходного массива, или сообщить, что таких чисел нет. Полученный массив вывести в порядке убывания элементов. Delphi


Информатика (15 баллов) | 3.7m просмотров
+161

Либо Borland Pascal*

Дан 1 ответ
+181 голосов

Delphi

Ответ:

  • var
  •  a1, a2: array of integer;
  •  n, c, i: integer;
  • procedure PrintDescending(a: array of integer);
  • var i, j, max: integer;
  • begin
  •  for i := 0 to Length(a) - 1 do
  •  begin
  •    for j := 0 to Length(a) - 1 do
  •      if a[j] > a[max] then max := j;
  •    Write(a[max], ' ');
  •    a[max] := -10001;
  •  end;
  • end;
  • begin
  •  //Запрашиваем ввод длины массива:
  •  Write('Введите длину массива: ');
  •  Read(n);
  •  
  •  //Устанавливаем длину массивов:
  •  SetLength(a1, n);
  •  SetLength(a2, n);
  •  
  •  //Заполняем первый массив случайными числами:
  •  for i := 0 to n - 1 do
  •    a1[i] := Random(201) - 100;
  •  
  •  //Заполняем второй массив только нечётными элементами первого:
  •  for i := 0 to n - 1 do
  •    if Abs(a1[i]) mod 2 = 1 then  
  •    begin
  •      a2[c] := a1[i];
  •      c := c + 1;
  •    end;
  •  
  •  //Урезаем второй массив:
  •  SetLength(a2, c);
  •  
  •  //Выводим первый массив:
  •  for i := 0 to n - 1 do
  •    Write(a1[i], ' ');
  •  Writeln;
  •  
  •  //Выводим второй массив в порядке убывания:
  •  if c = 0 then Write('Нечётных элементов нет.')
  •  else PrintDescending(a2);
  • end.

Пример работы:

(3.7k баллов)