![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
V.k.l.chr.by |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 29 Пол: Мужской Репутация: ![]() ![]() ![]() |
Будьте добры,уважаемые форумчане можете исправить ошибку в данном коде программе.Уж очень срочно надо.Буду очень признателен.А вот и само условие и код программы:
Исходные данные находятся в текстовом файле. Разделитель – конец строки. Программа запрашивает имя входного и результирующего (отсортиро-ванного) файла. Использовать динамическое распределение памяти.И надо сортировать строки методом пузырька.Тут как бы всё правилььно выполняет,только вот пишет ошибку .. и как мне подсказывали что-то с указателями.Или после кода программы"void main(void)..." #include<stdio.h>P.S.Прошу прощение,за повтор темы.Хотел удалить ,но не нашёл. Сообщение отредактировано: volvo - 27.11.2009 12:22 |
![]() ![]() |
V.k.l.chr.by |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 29 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вообщем всё понятно,но возникли небольшие вопросики.
1-Почему,в коде программы нельзя было просто написать до N,а не n_lines? 2-И у Вас в комментарии написано,что "до n_lines - 1"Причём тут единица. 3-И если не трудно,можно ещё пару слов об "os"ЧТо это такое?Я как понял,это назваине потока,благодаря чему будет копироваться троки в файл.Я так понял? - // для всех номеров строк от 0 до n_lines - 1 (в С++ индексация всегда начинается с 0) Я так подумал вышлю остальной код программы(если не трудно прокментировать его),чтобы после сего,по частям разбарал бы и если что вопрсоызадавал бы.Думаю так быстрее будет,чем по частям высылать и так же уже нужно скоро уже относить программу. p/S/Я ещё раз хочу выразить благодарность за помощь студенту. - void sort(char* ptr[], int n_lines) { |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
1-Почему,в коде программы нельзя было просто написать до N,а не n_lines? Ну, если тебе удобнее до N, то пиши до N, я привык давать "говорящие" имена переменным...в комментарии написано,что "до n_lines - 1"Причём тут единица. При том, что если число строк это n_lines, то значит, их индексы - от 0 до (n_lines-1)можно ещё пару слов об "os"ЧТо это такое? Это поток вывода, os (сокращение от output stream)... Понимаешь в чем дело... Когда запускается программа на С++, создаются несколько потоков. Один (cout, стандартный вывод на экран) - для вывода данных, другой (cin, стандартный ввод с клавиатуры) - для ввода данных в программу. Ну, есть еще cerr/clog, но это пока не важно... Так вот, cout имеет тип ostream. От этого же типа унаследован и файловый поток (ofstream), то есть, в свою процедуру я могу передать (по правилу совместимости типов) не только сам cout, но и любого его наследника, и если я передам файловый поток, то все то, что должно было бы напечататься на экране, будет выведено в файл... Чем я и воспользовался... Когда мне нужно - вывожу данные на монитор, а когда нужно - в файл...Теперь что касается остальной программы: Это - самая обычная сортировка "пузырьком" массива ptr, содержащего n_lines строк. Алгоритм этот найдешь на любом сайте, да хоть у нас в FAQ-е по Паскалю: Методы сортировок
По-моему несложно... |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 16:13 |