|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.11.2011, 16:54 | #1 |
Новичок
Джуниор
Регистрация: 19.11.2011
Сообщений: 7
|
С++.три матрицы, упорядочить строки той матрицы у которой больше нулевых строк
Условие звучит так: даны три матрицы M*N, найти ту, в которой больше нулевых строк (все элементы-нули), в этой матрице посчитать сумму элементов каждой строки и затем упорядочить строки по возрастанию их суммы, все операции с матрицами реализовать, используя только УКАЗАТЕЛИ, а не индексы, т. е.:
например в матрице: 4 5 2 1 0 1 2 1 3 0 7 2 0 0 0 0 сумма элементов каждой строки: 4 5 2 1=12 0 1 2 1=4 3 0 7 1=11 0 0 0 0=0 в итоге должна получиться матрица: 0 0 0 0 0 1 2 1 3 0 7 2 4 5 2 1 Помогите пожалуйста, что-то совсем не знаю как написать |
19.11.2011, 17:05 | #2 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
И что конкретно тебя тут смущает? )
|
19.11.2011, 17:18 | #3 |
Новичок
Джуниор
Регистрация: 19.11.2011
Сообщений: 7
|
то, что я не знаю как написать эту программу!)
|
19.11.2011, 17:25 | #4 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
) Ну давай смотреть. Сначала, видимо, нужно ввести с клавиатуры эти три матрицы. Потом в цикле пройтись по ним и сосчитать нулевые строки. Потом посчитать сумму строк и отсортировать их, как обычный массив.
Что из этого ты умеешь? ) |
19.11.2011, 17:31 | #5 |
Новичок
Джуниор
Регистрация: 19.11.2011
Сообщений: 7
|
Вот мой ввод/вывод, дальше что-то не придумаю как реализовать:
Код:
|
19.11.2011, 17:36 | #6 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Вот, теперь давай дописывать ее. Во-первых в задании не сказано же, что матрицы квадратные. Нужно отдельно вводить ширину и высоту.
Во-вторых везде вместо <= у тебя должно быть написано просто < . Дальше допиши в нее еще две матрицы и покажи, что получится |
19.11.2011, 18:03 | #7 |
Новичок
Джуниор
Регистрация: 19.11.2011
Сообщений: 7
|
Я не дописала в условии-матрицы все квадратные.
Код:
|
19.11.2011, 18:25 | #8 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Видишь, ничего сложного Теперь едем дальше. Давай думать, как проще всего сосчитать количество нулевых строк в матрицах? Сначала нам в любом случае нужны будут три переменные, в которые запишется их количество для трех матриц. И четвертая временная переменная-счетчик.
Проходим в цикле по всем трем матрицам. И для каждой строки сначала обнуляем счетчик, а потом увеличиваем его, если встречается ненулевой элемент. И после прохода одной строки проверяем - если счетчик (количество ненулевых элементов) больше 0, увеличиваем переменную, в которой будет храниться количество нулевых строк в этой матрице. Ну или можно считать количество нулевых элементов, и если их окажется в строке ровно n - увеличить счетчик. Как больше нравится. А еще по-хорошему надо бы вынести все одинаковые операции с матрицами в отдельные функции, если вы их уже проходили. Чтобы не повторять по три раза. Да, еще из кода придется убрать все индексы, судя по заданию, и заменить их адресной арифметикой- т. е. вместо a[i] писать *(a+i). Дерзай ) Последний раз редактировалось Son Of Pain; 19.11.2011 в 18:31. |
19.11.2011, 20:28 | #9 |
Новичок
Джуниор
Регистрация: 19.11.2011
Сообщений: 7
|
Код:
И дальше сумму строк записывать в одномерный массив, или как? |
19.11.2011, 20:54 | #10 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Вот, молодец, почти все правильно )
Для обращения к элементам двухмерного массива из-за приоритетов операций приходится использовать такую стремную конструкцию - вместо a[i][j] получается *(*(a+i)+j) В этой проверке Код:
Осталось только отсортировать строки любым алгоритмом. Можно записать суммы в одномерный массив и сортировать по нему. Ну и мелочь - вместо Код:
Код:
Напиши потом, что получится в итоге. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. | Volk_xD | Помощь студентам | 6 | 05.01.2011 13:39 |
Найти строки и индексы нулевых элементов матрицы, на паскале | serrga | Помощь студентам | 1 | 18.12.2009 02:46 |
Получить матрицу B[1..N-1,1..M-1] из матрицы A[1..N,1..M] удалением какой-либо х-той строки и k-го столбц | kempers | Помощь студентам | 2 | 18.12.2008 10:53 |
Вывести на экран матрицу, в которой наибольшее число нулевых строк | Александр НИК-В | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 05.12.2008 20:49 |
Помогите упорядочить строки матрицы по убыванию | kitty | Помощь студентам | 1 | 06.12.2007 23:23 |