![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.01.2024
Сообщений: 5
|
![]()
Доброго времени суток, у меня такое задание на языке Pascal:
223 Даны целые числа a1,a2,... Известно, что a1 > 0 и что среди a2,a3,... есть хотя бы одно отрицательное число. Пусть a1,..., an - члены данной последовательности, предшествующие первому отрицательному члену (n заранее неизвестно). Получить: г) min (a1 + a2, a2 + a3, ..., an-1 + an); Я написал код, вроде бы должно сработать, но почему то условия не соблюдаются и сумма продолжает присваиваться до конца цикла, помогите пожалуйста, весь день голову ломаю. Я еще не уверен что формулу правильную применил. Вот код: Код:
Последний раз редактировалось NikSix; 20.05.2024 в 17:17. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
![]()
Обычно, когда в задаче есть "n заранее неизвестно", то нужно считывать и обрабатывать числа по одному, а не заводить массив для хранения всех чисел последовательности. Ваш if всегда ложен, т.к. в sum уже сохранена сумма a[i-1] и a[i], а "a[i-1] + a[i]" не может быть меньше самого себя. Вам нужно две переменных: текущая сумма и минимальная сумма; их сравнивать в if и сохранять текущую в минимальную, если нужно. Еще нужно будет решить, чем инициализировать минимальную сумму, и что делать, если последовательность состоит из одного элемента.
UPD. Мне видится примерно так: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 20.05.2024 в 17:52. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 07.01.2024
Сообщений: 5
|
![]()
BDA, Ваш ответ мне очень помог, большое спасибо! Код теперь работает как надо
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны целые числа N и M (C#) | MaKsj | Помощь студентам | 0 | 02.11.2022 18:08 |
Даны целые числа m, a1,..., a20. Найти три натуральных числа i, j, k, каждое из которых не превосходит двадцати, такие, что ai+ aj | anabel123123 | Помощь студентам | 11 | 24.11.2014 23:43 |
Множества: Даны целые числа а1,.....,Аn. Вывести на печать сообщение - имеется ли в последовательности х повторяющиеся числа | lialia | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.12.2012 21:11 |
Даны целые числа р и q. Получить все делители числа q, взаимно простые c г. | Владан | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.12.2012 23:39 |
Даны целые числа | Хутор | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.12.2010 19:23 |