Другие языки программирования и технологии

вставить число Х песле последнего положительного элемента в массиве В из 10 чисел ?на паскале... на паскале...

EY
Efe Yldrm
321
2скружд - не заменить, а вставить. и в паскале индексы элементов могут с любого числа начинаться - не только с 0

var B:array[1..11]of integer;
X,K,N:integer;
begin
writeln('enigu 10 nombrojn');
for K:=1 to 10 do
readln(B[K]);
writeln('enigu X');
readln(X);
N:=11;
while (N>1) and (B[N-1]<=0) do
dec(N);
if N < 2 then writeln('ne pozitiva elementoj')
else begin
for K:=10 downto N do
B[K+1]:=B[K];
B[N]:=X;
for K:=1 to 11 do
write(B[K]:6);
end;
readln;
end.
АР
Андрей Репин
20 328
Лучший ответ
если ты эту ерунду не можешь.. . Бросай это занятие - данное учебное заведение не для тебя
В цикле сравниваешь каждый элемент массива с какой-нибудь переменной, изначально равной 0. Если текущий элемент больше либо равно 0, присваиваешь переменной ( пусть будет N) номер позиции в массиве. Когда найдешь нужное значение N, точно будет известно, какой элемент массива последний положительный. Если это последний элемент в массиве, то чтобы вставить после него число X, надо увеличить размерность массива на 1, иначе будет его переполнение. Если это не последнее число, то просто заменить следующий элемент массива на число X.
Например, у нас есть массив с числами 1, -2, -4, 0, 2, 2,-5, -3, 7 , -2
Тогда при поиске последнего элемента мы узнаем, что последний положительный элемент в массиве стоит на 9 позиции. Тогда числу N присваиваем номер 8, поскольку последовательность в массиве начинается с 0. Тогда в позицию N+1( то есть 9) надо поместить наше число X, и массив станет у нас 1, -2, -4, 0, 2, 2, -5, -3, 7, X
А если у нас последнее положительное число окажется последним в массиве, то воздаем новый массив с размерностью на 1 больше предыдущего, копируем в него наш массив, и в последний элемент записываем число X. На паскале кода не напишу, не знаю синтаксиса Паскаля.
Могу только на С++ сделать.

Похожие вопросы