Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Массив с проблемкой

Автор: dmit 6.4.2008, 19:01

задача:в заданном векторе A необходимо умножить все его элементы, имеющие четные номера, на значение его максимального элемента.

так вот, максимальный элемент я нашел, вот только не знаю как умножить на него элементы с четными номерами.я пробовал вот так:
.......
for i:=1 to N do
begin
if i mod 2=0 then
B[i]:=A[i]*Max;
if (N>0) then writeln('vector B:');
for i:=1 to N do writeln('B[',i,']=',B[i]:1);
reaadln;
end;
end.
....но мне прога пишет все значения B[i] равными нулю, а вот если написать if mod 2=1 , тогда на максимальный элемент умножаются все элементы массива А, что мне не нужно.Помогите!!!!Как надо замутить прогу, чтобы макс. элемент умножался на элементы с четными номерами?

Автор: граф Монте-Кристо 6.4.2008, 19:34

Попробуйте вместо

Цитата
B[i]:=A[i]*Max;

поставить
A[i]:=A[i]*max;

Автор: dmit 7.4.2008, 18:29

Если поставить A[i]:=A[i]*max, то ситуация не решается, все также при "if i mod 2=1" умножаются все элементы, а при "if i mod 2=0" прога выдает мне введенный массив без изменений......мда....может надо как-нибудь по-другому сделать данное преобразование, например, через функцию? unsure.gif

Автор: crazymaster 7.4.2008, 18:49

A[i*2]*Max - четные номера
A[i*2-1]*Max - нечетные
Но должно и так работать как у тебя, только переменную во втором цикле поменяй.

Автор: dmit 7.4.2008, 19:31

спасибо большое, crazymaster!!!все работает без проблем

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)