|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.04.2020, 21:18 | #1 |
Пользователь
Регистрация: 04.04.2020
Сообщений: 26
|
си, Обработка информации о рейсах
помогите пожалуйста выполнить структурную сортировку "пузырьком" (сортировка по возрастанию количества мест в самолете). Написал программку, но что-то не выходит пузырьковая сортировка. Никаких лишних функций использовать не разрешили. Буду заранее благодарен за помощь!
Код:
|
13.04.2020, 22:57 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Во-первых, не нужно брать адреса vzlet, posadka, name, classs при считывании. Во-вторых, не нужно сравнивать i с массивом a при выводе. В-третьих, не нужно пытаться сравнивать с помощью strcmp два числа. В-четвертых, менять местами нужно все содержимое структуры аэропорт, а не только количество мест. Сам алгоритм сортировки не смотрел.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
14.04.2020, 09:17 | #3 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Для быстроты и при большом объёме данных я бы проиндексировал массив структур и при "пузырянии" изменял бы только индексный массив. А при финальном выводе - брал бы номер очередного элемента структуры в порядке прохода индексного массива. Меньше перестановок - точно будет быстрее. Но запутаннее
|
14.04.2020, 16:57 | #4 |
Пользователь
Регистрация: 04.04.2020
Сообщений: 26
|
си, списки, структуры
Помогите пожалуйста, как добавить новую строку в список и удалить существующую? Я хуже чайника в си и вообще не понимаю, как это сделать. У меня есть такая программа:
Код:
Код:
|
14.04.2020, 19:16 | #5 |
Пользователь
Регистрация: 04.04.2020
Сообщений: 26
|
си, структуры (списки)
Я объявил структуру, ввел информацию (о рейсах по задаче), теперь необходимо добавить новую строку к уже имеющимся (количество строк n). Попробовал сделать, но не вышло. Я хуже чайника в си, поэтому помогите пожалуйста справиться с этим заданием.
P.S. нужно с клавиатуры добавить новую информацию к уже имеющейся, в смысле, у меня есть данные о полетах: место вылета, место посадки, название самолета, кол-во мест, цена билета, класс. Я ввожу эти данные сначала с консоли (Москва, Париж, аэробус320, 156мест, 2000р, класс с), и теперь мне нужно добавить еще к этому новую похожую строку. Код:
|
14.04.2020, 19:41 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
1) Не нужно брать адрес от указателя на строку при считывании (vzlet, posadka и т.д.).
2) Зачем такая сложная проверка на первый символ? Код:
Выбрать индекс строки для удаления j. Пройтись от индекса j до n - 2 и сохранить строку k + 1 в строку k. Уменьшить количество n имеющихся строк на единицу. 4) Мне кажется стоит завести отдельную функцию fill_data(struct aeroport *a) для считывания информации об одном рейсе, чтобы не писать один и тот же код. 5) Для добавления новой строки. Убедиться, что в массиве есть место. Считать строку. Выбрать индекс добавления строки j. Пройтись от индекса n - 1 до j и сохранить строку k в строку k + 1. Увеличить количество n имеющихся строк на единицу. Записать в индекс j новую строку.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 14.04.2020 в 20:00. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка символьной информации | Роман97 | Помощь студентам | 3 | 13.02.2014 22:16 |
обработка символьной информации | Sangreal | Помощь студентам | 2 | 12.12.2011 22:12 |
Обработка символьной информации | kop | Общие вопросы C/C++ | 2 | 17.04.2011 02:10 |
Обработка текстовой информации С++ | Перфаратар | Общие вопросы C/C++ | 2 | 30.11.2010 21:12 |