0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
1 | ||||||
Отсортировать диагонали матрицы,расположенные выше главной, по убыванию элементов, а диагонали матрицы, расположенные ниже главной, по возрастанию02.10.2011, 07:39. Показов 5667. Ответов 16
Метки нет Все метки)
(
дана матрица размерностью nxn, содержащая целые числа. Отсортировать диагонали матрицы,расположенные выше главной, по убыванию элементов, а диагонали матрицы, расположенные ниже главной, по возрастанию элементов методом выбора
моя исходная матрица : 4 4 0 1 -3 3 2 2 9 4 5 10 6 8 0 2 9 4 программа выводит следующее: 4 4 0 9 4 3 -858993460 2 8 -3 -858993460-858993460 6 1 -858993460-858993460-858993460 4 вот моя задача, но у меня получается только для элементов, стоящие выше главной диагонали,подскажите в чем моя ошибка
0
|
|
02.10.2011, 07:39 | |
Ответы с готовыми решениями:
16
Все элементы матрицы, расположенные на главной диагонали и ниже ее, расположить в начале массива E Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали |
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
02.10.2011, 11:28 | 2 | |||||
Ошибка здесь:
0
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
02.10.2011, 13:23 [ТС] | 3 |
тогда почему для эл-в выше главной диагонали программа работает
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
02.10.2011, 17:03 | 4 |
Вам просто повезло...
На самом деле, судя по этим результатам: неинициализированные элементы массива имеют у Вас значения -858993460. А диагонали выше главной Вы сортируете по убыванию. Поэтому эти неициализированные значения у Вас и не попадают на экран (но в самой сортировке они участвуют). Кстати, то что у Вас неинициализированные элементы массива имеют у Вас значения -858993460, это не значит, что на другом компьютере или другом компиляторе будут такие же (даже не расчитывайте на это).
0
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
10.10.2011, 21:46 [ТС] | 5 |
valeriikozlov, да действительно вы правы дело в этом, но никак не могу подобрать "n" чтобы все элементы попадали и числа были нормальными.....
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
10.10.2011, 22:23 | 6 | |||||
Ириска5, проверяйте:
2
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
10.10.2011, 23:13 [ТС] | 7 |
valeriikozlov, работает идеально, спасибо большое
Добавлено через 24 минуты valeriikozlov, можете подсказать с еще одной программой?
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
10.10.2011, 23:23 | 8 |
0
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
10.10.2011, 23:29 [ТС] | 9 |
дана последовательность целых чисел. Удалить из массива все элементы,в записи которых все цифры различны.
при решении задачи нужно использовать библиотеку <vector> , <algorithm> и пользоваться итераторами ( не обязательно всё сразу )
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
11.10.2011, 07:24 | 10 | |||||
Ириска5, Вот Вам функция в помощь, которая возвращает true, если в числе все цифры различны. И возвращает false когда наоборот:
- создать vector - ввести в него данные - затем пройтись по вектору и вызывать для каждого элемента вышенаписанную функцию. Если функция возвращает false, то удаляете этот элемент вектора.
0
|
447 / 210 / 21
Регистрация: 07.10.2011
Сообщений: 462
|
|
11.10.2011, 11:47 | 11 |
или можно использовать фунцию remove_if, раз у нас есть булевский предикат для определения удовлетворяет ли элемент условию
Не по теме:
0
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
11.10.2011, 22:34 [ТС] | 12 | |||||
valeriikozlov,
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|||||||||||
11.10.2011, 23:23 | 13 | ||||||||||
Ириска5, честно скажу что с stl пока не до конца разобрался (чаще всего обхожусь без stl). Но Вам могу пояснить Ваши ошибки - при удалении элемента вектора вот здесь:
Вот Вам рабочий вариант (можно и лучше написать, но это буду не я):
1
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
11.10.2011, 23:55 [ТС] | 14 |
valeriikozlov, только надо убрать "!" в func(*I) тогда она будет удалять с различными цифрами и я немного не поняла как работает bool
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
12.10.2011, 07:20 | 15 | |||||
да тут Вы правы - я не внимательно прочитал задание.
см комментарии:
1
|
Higher
|
||||||
12.10.2011, 08:46 | 16 | |||||
Примерно так(функцию готовую взял)
0
|
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
12.10.2011, 16:04 [ТС] | 17 |
valeriikozlov, как вы сложно описали....я сегодня с утречка посмотрела на свежую голову как бы и всё поняла,спасибо вам большое за помощь
0
|
12.10.2011, 16:04 | |
Помогаю со студенческими работами здесь
17
Отсортировать по убыванию элементы матрицы ниже главной диагонали Элементы матрицы выше главной диагонали отсортировать по возрастанию
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |