|
0 / 0 / 0
Регистрация: 02.12.2019
Сообщений: 28
|
||||||
Для строк, содержащих на главной диагонали отрицательные элементы,найти максимальный элемент19.01.2020, 15:50. Показов 4152. Ответов 8
Добрый день!
Помогите, пожалуйста, вроде код должен работать, но выводит постоянно -3. строки 34-45 При правильной работе программа должна вернуть значения 9 для первой строки и 3 для 3й.
0
|
||||||
| 19.01.2020, 15:50 | |
|
Ответы с готовыми решениями:
8
Для строк, содержащих на главной диагонали отрицательные элементы, вывести на экран сумму элементов Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
|
|||||||||||
| 19.01.2020, 16:55 | |||||||||||
|
Честно лень вникать, что там не так, проще заново сделать
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 02.12.2019
Сообщений: 28
|
|
| 19.01.2020, 17:49 [ТС] | |
|
Спасибо большое! Вы, правда, используете более продвинутые способы выполнения этой задачи. А можете прокомментировать саму функцию поиска максимального элемента?Хочу понять
В момент нахождения отрицательного знач. на главной диагонали, мы передаем туда значение i и размер матрицы(4). Если размер меньше 2х, т.е 1, мы возвращаем что?рядок? а далее, если размер больше, то каким образом мы прибавляем к array сравнение в скобках? А также не совсем понятно вот что: мы уменьшаем размер на единицу и возвращаем эти данные в printf, а что происходит дальше?Просто выводится на экран? Или каким-то образом происходит рекурсия внутри функции поиска элемента?
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
|
|||||||||
| 19.01.2020, 18:19 | |||||||||
Сообщение было отмечено Lockal как решение
Решение
Если количество элементов для проверки меньше двух ( size < 2 ) возвращается указатель на элемент массива, уже не обязательно первый, но первый максимальный. Приведение типов пока можно считать условностью. Если элементов два или больше, функция вызывает сама себя с изменёнными параметрами max_element(array + ( array[0] < array[size - 1] ), size - 1). Здесь надо учитывать особенность вычисления логических выражений в языке С. Истинное выражение возвращает 1, ложное - 0. Если первый проверяемый элемент меньше последнего ( array[0] < array[size - 1] ) значение указателя сместится на следующий элемент, в противном случае останется прежним. Ну и количество элементов, передаваемое вторым параметром, в любом случае уменьшится size - 1.Весь профит с такого варианта функции - компактная запись. На самом деле рекурсивные функции имеют ряд особенностей, сильно ограничивающих их применение.
1
|
|||||||||
|
0 / 0 / 0
Регистрация: 02.12.2019
Сообщений: 28
|
||||||
| 20.01.2020, 17:26 [ТС] | ||||||
|
Ого, спасибо большое! Я и не знал до этого, что таким образом можно использовать буллевые функции(надеюсь, правильно написал).
В целом, стало понятней, хотя самостоятельно такую функцию не напишу.
элементов больше 2х, поэтому ф-ция вызывает себя же с параметрами(-3 + (-3<9)? и уменьшает размер до 3х, дальше все по новой, -3 остается, а каретка сравнивает уже другой элемент(переместилась, потому что -3 меньше 9), т.е. (-3 + (-3<1)? и снова уменьшаем размер....непонятно то, что в данном случае -3 самый маленький элемент строки и каждый раз возвращает значение "да" и провоцирует движение к следующему числу, а также не понятно почему сравнивается массив с первым элементом [0] и с предпоследним[size-1], почему не последним?Как нам потом сравнить с 8кой? Простите, просто Ваш код вызвал такой сумбур в голове... Добавлено через 11 минут или значение array тоже меняется, при этих манипуляций? И если да, то каким образом? к -3 добавляется 1(если да) и значение становится уже 1ей?(на примере нашей матрицы)
0
|
||||||
|
2 / 1 / 1
Регистрация: 13.11.2019
Сообщений: 4
|
|
| 20.01.2020, 17:49 | |
Сообщение было отмечено Lockal как решение
Решение
на 41-строке напиши вот так: max = a[i][j];
1
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
|
|||
| 20.01.2020, 18:27 | |||
Сообщение было отмечено Lockal как решение
РешениеПрежде всего в массиве из SIZE элементов у первого элемента индекс (смещение от начала массива) равен 0, у последнего SIZE - 1. Рассмотрим на примере первой строки матрицы: массив: -3, 1, 9, 8 размер 4 1 вызов: размер больше одного, сравниваем элементы с индексами 0 и 3: -3 < 8 - истина, то есть единица, указатель сдвигается на следующий элемент, размер уменьшается 2 вызов: массив: 1, 9, 8 размер 3. 1 < 8 истина, указатель сдвигается, размер - 1 3 вызов: массив: 9, 8 размер 2. 9 < 8 ложь, указатель на месте, размер - 1 4 вызов: массив: 9 размер 1. Выполняется условие "размер < 2", указатель на девятку "всплывает" через предыдущие вызовы и возвращается, как результат.
1
|
|||
|
0 / 0 / 0
Регистрация: 02.12.2019
Сообщений: 28
|
|
| 20.01.2020, 22:15 [ТС] | |
|
Все, теперь понятно) Такая себе пузырьковая сортировка, но с одним циклом!
Спасибо, буду использовать ![]() Добавлено через 2 часа 36 минут SergiozZz, тю ..работает!)))я уже думал, что совсем котелок у меня не вариант, а нужно было правильно присвоить переменной значение. Спасибо большое! А не подскажите, как сделать так, чтобы код дальше продолжал проверять главную диагональ?осуществить это через цикл while?
0
|
|
|
2 / 1 / 1
Регистрация: 13.11.2019
Сообщений: 4
|
|
| 18.10.2020, 13:11 | |
|
даа
0
|
|
| 18.10.2020, 13:11 | |
|
Помогаю со студенческими работами здесь
9
Если максимальный элемент матрицы стоит на главной диагонали, то все элементы главной диагонали сделать равными максимальному.
Найти суммы элементов тех строк матрицы, на главной диагонали которой стоят отрицательные элементы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|