1 / 1 / 0
Регистрация: 08.02.2017
Сообщений: 21
|
||||||
1 | ||||||
За один просмотр файла, без использования сортировки, сформировать список чисел, упорядоченный по неубыванию10.02.2017, 19:34. Показов 2111. Ответов 9
Метки file input/output, sort by, сортировка, упорядочить без сортировки, файловый ввод/вывод (Все метки)
Доброго времени суток! Пытался написать программу, которая без использования сортировки перемещала числа из одного файла в другой и при этом записывала их в порядке возрастания. Вот код:
Но когда в "input.txt" записываешь, например, числа 78 34 45 88 23 11 111 78 43 33, в "output.txt" получается не то, что я хотел 34 45 78 23 11 88 78 43 33 . Куда-то пропадает число 111, и сортирует он не весь файл. Подскажите, где я ошибся?
0
|
|
10.02.2017, 19:34 | |
Ответы с готовыми решениями:
9
За один просмотр файла сформировать упрорядоченный список чисел Сформировать и ввести упорядоченный односвязный список без использования list |
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
10.02.2017, 19:59 | 2 |
А зачем 2 while - строки 20 и 32?
Добавлено через 3 минуты По какому принципу работает условие if{}else{} в строках 22-28 - это сортировка или конвейер? Добавлено через 13 минут Сортировка не правильно работает, Вы выводите число 34 в выходной поток(out), но в непрочитанном файле есть еще меньшее число(11). Так что сортировка Ваша провалилась по определению. А что стандартную сортировку нельзя применять? Если можно, то просто читаете файл, запускаете метод sort() и результат записываете в файл. Если сортировку так нельзя применять, то тут на форуме где-то был заголовок:"Сортировки". Видимо Вам его нужно посмотреть.
1
|
1 / 1 / 0
Регистрация: 08.02.2017
Сообщений: 21
|
|
10.02.2017, 20:19 [ТС] | 3 |
Нет, задание звучит так:
В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один просмотр файла, без использования сортировки сформировать список этих чисел, упорядоченный по неубыванию (каждый следующий элемент списка больше или равен предыдущему). Значения полученного списка занести в текстовый файл OUTPUT.TXT. Так что тема "Сортировка" мне не подходит ![]() Просто нет никаких идей, как решить данную задачу. Может Вы что-то предложите? Добавлено через 11 минут Извините, что сразу не сказал, что это задание.
0
|
Модератор
![]() ![]() |
|
10.02.2017, 20:28 | 4 |
![]() Решение
Nik_001, читайте свои числа из файла INPUT.TXT в библиотечный контейнер
std::set . А затем из std::set в OUTPUT.TXT.И ничего сортировать не придётся. std::set сам упорядочивает элементы, которые в нём содержатся.Добавлено через 4 минуты Nik_001, если в Вашем файле допускаются дубликаты (элементы с одинаковыми значениями), то используйте std::multiset .Добавлено через 3 минуты Nik_001, подробнее про std::set и std::multiset см. в книге Николаи Джосаттиса "Стандартная библиотека C++. Справочное руководство" (2014, 2-е издание, издательство Вильямс, глава 7 "Контейнеры STL", подраздел 7.7 "Множества и мультимножества", стр. 347).
2
|
1 / 1 / 0
Регистрация: 08.02.2017
Сообщений: 21
|
|
10.02.2017, 21:06 [ТС] | 5 |
Спасибо большое. Сейчас попробую написать, как Вы сказали.
0
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
10.02.2017, 23:26 | 6 |
Задание звучит как: отсортировать числа без сортировки. Прелестно.
2
|
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
11.02.2017, 00:03 | 8 |
gru74ik, в результате получили сортировку вставками. И внешняя сортировка - тоже сортировка.
1
|
Модератор
![]() ![]() |
|
11.02.2017, 09:41 | 9 |
avgoor, забил последний гвоздь в гроб надежды. Что ж, признаю́ - ты прав, дорогой друг. Действительно, нельзя упорядочить последовательность, имея запрет на любой вид сортировки. Условие задачи - лютый вздор.
2
|
1 / 1 / 0
Регистрация: 08.02.2017
Сообщений: 21
|
|
11.02.2017, 13:08 [ТС] | 10 |
Да уж, действительно, задание звучит бредово. Подойду к преподу, который это задание давал - попробую прояснить ситуацию.
0
|
11.02.2017, 13:08 | |
11.02.2017, 13:08 | |
Помогаю со студенческими работами здесь
10
За один просмотр файла сформировать список чисел и найти среднее арифметическое элементов списка За один просмотр файла сформировать список чисел из INPUT.TXT. Определить количество нулевых элементов в списке За один просмотр файла и без использования дополнительных файлов вывести элементы файла f в указанном порядке Очередь. За один просмотр файла без использования дополнительных файлов напечатать элементы файла в порядке
Образовать из двух упорядоченных по неубыванию массивов один, упорядоченный по неубыванию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |