25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
||||||
1 | ||||||
Цикл в цикле (for()).26.09.2009, 17:43. Показов 33448. Ответов 20
Метки нет (Все метки)
Скажите пожалуйста, почему такая "штука" не работает?
Ребята, подскажите пожалуйста как быть! Заранее спасибо!
0
|
26.09.2009, 17:43 | |
Ответы с готовыми решениями:
20
Цикл в цикле Цикл for в цикле for Цикл в цикле Цикл в цикле |
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
|
|
26.09.2009, 17:47 | 2 |
здесь правильно.
возможно, что-то внутри цикла неверно. и где объявления переменных?
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
26.09.2009, 17:48 | 3 |
Win32, Если все три переменные объявлены и N инициализирована, должно работать.
0
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
||||||
26.09.2009, 17:51 [ТС] | 4 | |||||
Вобщем, вот всё:
Добавлено через 1 минуту В условии, во втором цикле, вобще запутался
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
26.09.2009, 17:54 | 5 | |||||
кто тебя обманул что у тебя N равно 40? N = 3
0
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
||||||
26.09.2009, 17:58 [ТС] | 7 | |||||
Изначальная переменная:
Отсортировать данный массив методом ящичной сортировки.
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
26.09.2009, 18:00 | 8 | |||||
цикл проходит полностью! вот
посмотри
1
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
|
26.09.2009, 18:05 [ТС] | 9 |
Может тогда кто нибудь поможет с самим алгоритмом?
Добавлено через 2 минуты А именно с 4ым пунктом... Заранее спасибо!
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
26.09.2009, 18:14 | 10 |
При первом просмотре сразу видно:
- если массив не содержит отрицательных чисел, то min всегда будет равно 0 (хоть в дальнейшем эта переменная и не используется). - /*3. Определяем количество "ящиков"! */ M = max / 2 + 1; , а сама переменная М в дальнейшем не используется.
0
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
|
26.09.2009, 18:25 [ТС] | 11 |
Алгорит ящичной сортировки:
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
26.09.2009, 19:33 | 12 |
Первоначальный код сами писали?
0
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
|
26.09.2009, 19:36 [ТС] | 13 |
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
26.09.2009, 19:53 | 14 | |||||
Судя по приведенному Вами алгоритму ящичной сортировки в Вашем коде есть несколько ошибок, и если первую половину кода можно просто исправить, то вторую половину (как раз ту о которой Вы задали первый вопрос) нужно переписывать. Как я понял Вы в данной части кода:
Эти два действия необходимо разделить (т.е. не выполнять их в одном цикле for()). Сначало в первом цикле for() необходимо каждому элементу (Ai) сопоставить номер ящика (k), а в следующем цикле for() в каждом из ящиков произвести упорядовачиние элементов. И обязательное условие чтобы эти циклы не были вложены друг в друга.
1
|
Заблокирован
|
|||||||||||
26.09.2009, 20:02 | 15 | ||||||||||
Добавлено через 6 минут
Получается что каждый список упорядочен или по убыванию или по возрастанию, но всегда элементы из первого списка больше элементов второго, тоесть чтобы изменить порядок не достаточно изменить знак с < на >. Добавлено через 1 минуту в задании сказано использовать список, я использовал std::vector, просто заменить массивом не получится, т.к. надо знать сколько элементов уже есть в каждом массиве. Если STL использовать нельзя - пиши в личку
1
|
25 / 24 / 1
Регистрация: 18.08.2009
Сообщений: 126
|
||||||
26.09.2009, 20:14 [ТС] | 16 | |||||
rrrFer, спасибо большое. А можно как нибудь
Добавлено через 33 секунды valeriikozlov, спасибо большое, но ума не приложу как сделать по другому
0
|
Заблокирован
|
||||||
26.09.2009, 20:23 | 17 | |||||
Win32,
1
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|||||||||||
27.09.2009, 13:15 | 18 | ||||||||||
Win32,
Вот исправленная Ваша программа с использованием алгоритма ящичной сортировки, по возрастанию:
- Количество ящиков (переменная int M) может быть разным и наверное должно задаваться пользователем (на конечный результат это не влияет). Если хотите можете сделать чтобы М задавалось пользователем в начале программы. Я думаю Вы это сможете сделать сами. - в п.4 ( "Раскидываем" элементы по "ящикам".) на самом деле не раскидываем по ящикам а просто каждому элементу A[i] сопоставляем номер ящика (который записан в K[i]). Так например при количестве ящиков (M=10) A[3]=23.7865, K[3]=2. Т.е. элементу А[3] сопоставлен второй ящик. rrrFer, При определенных значениях массива a[],
2
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
27.09.2009, 13:47 | 20 |
Приношу извинения. Ошибся!(предполагал при условии что все числа массива a[] отрицательные)
2
|
27.09.2009, 13:47 | |
27.09.2009, 13:47 | |
Помогаю со студенческими работами здесь
20
Цикл в цикле Почему не работает цикл while в цикле for Цикл в цикле для сортировки массивов Цикл в цикле? Каков лучший вариант? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |