Const nn = 50; var a,b,nb:array[1..nn] of integer; i,n,j: integer; begin Write('Введите количество элементов в массиве (n<51): '); Read(n); Writeln('Вводите элементы массива'); j:=0; for i:=1 to n do begin Read(a[i]); if a[i]<0 then begin Inc(j); b[j]:=a[i]; nb[j]:=i end end; if j>0 then begin Write('Отрицательные элементы: '); for i:=1 to j do Write(b[i],' '); Writeln; Write('Индексы отрицательных элементов в массиве:'); for i:=1 to j do Write(nb[i]:3); Writeln end end.
Результаты тестирования: Введите количество элементов в массиве (n<51): 9 Вводите элементы массива 3 5 -2 3 -2 0 -6 -8 1 Отрицательные элементы: -2 -2 -6 -8 Индексы отрицательных элементов в массиве: 3 5 7 8
Введите количество элементов в массиве (n<51): 8 Вводите элементы массива -1 -2 -3 -4 0 -1 2 3 Отрицательные элементы: -1 -2 -3 -4 -1 Индексы отрицательных элементов в массиве: 1 2 3 4 6
Текстуальное упорядочение, принятое в большинстве систем сравнения символьных строк, даст следующее: 10мб, 1мб, 500кб, 5мб
В самом деле, символ "1" стоит в кодовой таблице раньше, чем символ "5" и это дает две подпоследовательности: 1мб, 10мб и 500кб, 5мб. Теперь рассматриваем второй символ в каждой подпоследовательности. Числа в кодовой таблице идут перед буквами, поэтому в первом случае "0" следует перед "м" и получаем 10мб, 1 мб, а во втором "0" следует перед "к" и получаем 500кб, 5мб.
В то же время, в некоторых системах строки сравниваются сначала по длине, а затем, при равной длине, по содержимому, и в этом случае мы бы получили порядок 1мб, 5мб, 10мб, 500кб.
Какой ответ является в данном случае правильным, однозначно сказать нельзя.
nn = 50;
var
a,b,nb:array[1..nn] of integer;
i,n,j: integer;
begin
Write('Введите количество элементов в массиве (n<51): ');
Read(n);
Writeln('Вводите элементы массива');
j:=0;
for i:=1 to n do
begin
Read(a[i]);
if a[i]<0 then begin Inc(j); b[j]:=a[i]; nb[j]:=i end
end;
if j>0 then begin
Write('Отрицательные элементы: ');
for i:=1 to j do Write(b[i],' ');
Writeln;
Write('Индексы отрицательных элементов в массиве:');
for i:=1 to j do Write(nb[i]:3);
Writeln
end
end.
Результаты тестирования:
Введите количество элементов в массиве (n<51): 9
Вводите элементы массива
3 5 -2 3 -2 0 -6 -8 1
Отрицательные элементы: -2 -2 -6 -8
Индексы отрицательных элементов в массиве: 3 5 7 8
Введите количество элементов в массиве (n<51): 8
Вводите элементы массива
-1 -2 -3 -4 0 -1 2 3
Отрицательные элементы: -1 -2 -3 -4 -1
Индексы отрицательных элементов в массиве: 1 2 3 4 6
В самом деле, символ "1" стоит в кодовой таблице раньше, чем символ "5" и это дает две подпоследовательности: 1мб, 10мб и 500кб, 5мб. Теперь рассматриваем второй символ в каждой подпоследовательности. Числа в кодовой таблице идут перед буквами, поэтому в первом случае "0" следует перед "м" и получаем 10мб, 1 мб, а во втором "0" следует перед "к" и получаем 500кб, 5мб.
В то же время, в некоторых системах строки сравниваются сначала по длине, а затем, при равной длине, по содержимому, и в этом случае мы бы получили порядок 1мб, 5мб, 10мб, 500кб.
Какой ответ является в данном случае правильным, однозначно сказать нельзя.