|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.06.2021, 11:56 | #1 |
Новичок
Джуниор
Регистрация: 10.06.2021
Сообщений: 5
|
Поиск элементов матрицы
Дана квадратная матрица. Посчитать, сколько четных элементов в матрице, соседи которых по вертикали и по горизонтали нечетные числа. Динамически выделить необходимую память для элементов матрицы.
Заранее огромное спасибо. Вот код моей функции, не рабочий. Код:
|
10.06.2021, 12:13 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Что-то не вижу динамического выделения памяти под матрицу.
Не отработан вариант, когда проверяемый элемент у границы массива - у него только 1 сосед слева или справа или сверху или снизу. Код:
|
10.06.2021, 12:18 | #3 |
Новичок
Джуниор
Регистрация: 10.06.2021
Сообщений: 5
|
digitalis, Динамическое там есть, просто в другой функции! Благодарю за замечание)
|
10.06.2021, 14:47 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Вопрос с "приграничным" элементом остаётся. Вылетит на первом же шагу цикла, потому что там нет ни "соседа слева", ни "соседа сверху" . Это в лучшем случае, если отключён контроль границ массива. А в худшем - как бы работает, а результат - БСК.
Код:
Последний раз редактировалось digitalis; 10.06.2021 в 14:51. |
10.06.2021, 16:43 | #5 |
Новичок
Джуниор
Регистрация: 10.06.2021
Сообщений: 5
|
digitalis, реализовал все проверки, работать не хочет
Код:
|
11.06.2021, 05:05 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Сначала надо проверять индекс, а только потом лезть по нему в массив. А еще, мне кажется, что "проваливание" в следующее условие может быть неверным. Допустим, что условия на индексы в первом if выполнены, но сами соседи не все нечетны, тогда будет выполнена проверка этих соседей, будто они являются верхней границей, но это неверно. Попробуйте так:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 11.06.2021 в 05:08. |
11.06.2021, 11:42 | #7 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Я как не сторонник длинных "многоэтажных" выражений , способствующих закипанию мозгов и воспроизведению матовых слов - ввёл бы дополнительные 4 переменные, которые бы определяли "соседей" - если не приграничные - то по общему правилу, если да, то вместо несуществующего элемента массива - нечётную константу. И уж затем if - ить однообразно. Но предварительно, чтоб не делать лишней работы , выполнил бы
Код:
Вообще разбивание монстрообразных конструкций, дающих благодатную почву для произрастания трудноуловимых ошибок, на более простые и ясные для понимания считается хорошей практикой, imho. Последний раз редактировалось digitalis; 11.06.2021 в 11:46. |
11.06.2021, 15:34 | #8 |
Новичок
Джуниор
Регистрация: 10.06.2021
Сообщений: 5
|
BDA, спасибо большое!
|
11.06.2021, 15:34 | #9 |
Новичок
Джуниор
Регистрация: 10.06.2021
Сообщений: 5
|
digitalis, спасибо огромное, разобрался
|
11.06.2021, 16:05 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
digitalis, согласен насчет неприятности многоэтажных условий, но в данном случае получилось достаточно однообразно, на мой взгляд. По поводу лишней работы: что в си, что в дельфи (если не включать Compiler - Complete boolean eval) логическое "и" считается лениво слева-направо.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск максимального значения элемента из наименьших элементов каждой строки матрицы (Assembler Linux) | TIMON_Dark | Фриланс | 2 | 08.12.2016 22:08 |
Поиск элементов матрицы | C++++ | Помощь студентам | 3 | 15.06.2014 16:26 |
Матрицы.Поиск координат элементов матрицы. | dima-intro | Помощь студентам | 1 | 11.12.2010 22:48 |
поиск серии одинаковых элементов строк матрицы | Termit1995 | Помощь студентам | 1 | 20.05.2010 06:44 |
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. | renovare | Помощь студентам | 2 | 03.07.2009 21:13 |