|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.01.2008, 14:31 | #1 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
Организация циклов и работа с одномерными массивами
Прошу помощи в решении данной задачи
Integer. Найти произведение последних L отрицательных элементов в массиве A={a[i]}. Ничего понять не могу как решать её.Помогите плиз. Ну точто заполнить массив рандомно это понятно а с помошью какой футкции или процедуры зделать одбор последних отрицательных элементов незнаю. |
17.01.2008, 14:58 | #2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Отсортируй массив по убыванию. Все отрицательные элементы соберутся в конец. Затем
Код:
|
17.01.2008, 15:41 | #3 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
Спасибо большое.
|
17.01.2008, 19:16 | #4 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
Вот что получилось но прога не работает не пойму из-за чего.
Uses crt; const n=10; Var a:array[1..n] of integer; i,j: byte; b,l:word; p: integer; Begin clrscr; randomize; begin for i:=1 to n do a[i]:=random(101)-50; write (a[i],' '); writeln; end; for j:=1 to n-1 do for i:=1 to n-j do if a[i] < a[i+1] then begin b:=a[i]; a[i]:=a[i+1]; a[i+1]:=b; end; writeln ('упорядоченный масив'); for i:=1 to n do write (a[i],' '); writeln; p:=1; for i:=(n-l) to n do begin p:=p*a[i]; write(p); end; End. Вот так у меня получилось помогите додумать что не так. Последний раз редактировалось Zenit10; 17.01.2008 в 19:25. |
17.01.2008, 19:44 | #5 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Ну, а L чему равно, сколько цифр перемножать?
Код:
Последний раз редактировалось _Dmitry; 17.01.2008 в 19:50. |
17.01.2008, 20:01 | #6 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
А я недогоню почему L=3 там же написано последних L отрицательных элементов их может быть 5,6, или 8 ваще как массив введётся.
|
17.01.2008, 20:03 | #7 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Я понял так, их всего может быть 5,6, или 8, а нужно вычислить произведение L последних.
Например, массив: 5 -8 3 8 7 6 -2 4 -3 9 4 -6 2, L=3, то перемножать нужно последние 3 отрицательные: -6, -3, -2. Вот код для этого Код:
Последний раз редактировалось _Dmitry; 17.01.2008 в 20:08. |
17.01.2008, 21:58 | #8 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
Всё понял спасибо огромнейшее.
Кстати неподскажешь как замутить проверку на область допустимых значений, т.е. у нас умножается 3 отрицательных числа а вдруг в массиве будет только 2 отрицательных. Последний раз редактировалось Zenit10; 17.01.2008 в 22:07. |
17.01.2008, 22:12 | #9 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
В программе перемножаются только отрицательные числа. Если их 2 - будут перемножены только 2, если их 7 - будут перемножены 3 последних. Если отрицательных чисел нет, то ничего перемножаться не будет - результат будет равен 1.
Последний раз редактировалось _Dmitry; 17.01.2008 в 22:16. |
17.01.2008, 22:20 | #10 |
Пользователь
Регистрация: 16.01.2008
Сообщений: 16
|
ок. даже незнаю как тебя благодарить
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с массивами | mager | JavaScript, Ajax | 5 | 27.08.2008 22:02 |
Работа с массивами | Stelix | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.06.2008 11:37 |
Работа с массивами в C# | MaskEdit | Общие вопросы .NET | 3 | 17.05.2008 17:59 |
Работа с массивами | Hakman | Общие вопросы C/C++ | 1 | 19.02.2008 15:11 |
Работа с массивами | DeN1308 | Помощь студентам | 3 | 09.11.2007 11:50 |