|
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 1
|
||||||
Ошибка при работе со списками при динамическом выдилении памяти24.12.2014, 02:58. Показов 784. Ответов 0
Метки нет (Все метки)
Нужно организовать последовательность структур в односвязный список, при єтом организовать добавление елемента в готовый список и изять данние о книгах, стоимость которых менше чем в библиотеке
Вот код, не пойму что не так, ниже есть текстовый документ с которого я считываю данние. #include <iostream> #include <fstream> #include <string.h> #include <stdlib.h> #define N 20 using namespace std; struct book { char name[64], author[64]; int page, year; double price; book* next; }; void sort(book *start) { book *elem, *tmp; bool token = 0; while (!token) { token = 1; elem = start; while (elem->next->next) { if (strncmp(elem->next->author, elem->next->next->author, 1) > 0) { token = 0; tmp = elem->next; elem->next = elem->next->next; tmp->next = elem->next->next; elem->next->next = tmp; } elem = elem->next; } } } int main() { setlocale(LC_ALL, "Ukrainian"); book *p; book *start = new book; start->next = NULL; char str[256]; ifstream enter("C:\\books.txt"); int i = 0; while (i< N) { book *pp = new book; if(i) p->next = pp; p = pp; p->next = NULL; enter.getline(str, sizeof(str)); char *pw; pw = strtok (str, "\t"); strcpy(p->name, pw); pw = strtok (NULL, "\t"); strcpy(p->author, pw); pw = strtok (NULL, "\t"); p->year = atoi(pw); pw = strtok (NULL, "\t"); p->page = atoi(pw); pw = strtok (NULL, "\t"); p->price = atof(pw); if(start->next == NULL) { start = p; } i++; } double aver = 0; book *pt = start; while(pt != NULL) { aver += pt->price; pt = pt->next; } aver /= N; cout << "Середня ціна: " << aver << endl; cout << "_______________________________________ _______________________" << endl; pt = start; book *pp; while(1) { pp = pt; pt = pt->next; if(!pt) break; if(pt->price < aver) { if(!pt) { pp->next=NULL; break; } pp->next = pt->next; pt = pp; } } pt = start; if(pt->price <aver) { if(pt) start = pt -> next; else start = NULL; } pt = start; sort(start); while(pt) { cout << pt->name << "\t" << pt->author << "\t" << pt->page << "\t" << pt->year << "\t" << pt->price << endl; pt = pt->next; } char n[64], a[64]; int pa, y; double pr; p = start; while(p->next) { p = p->next; } while(1) { book *pp = new book; p->next = pp; p = pp; p->next = NULL; cout << "_______________________________________ _______________________" << endl; cout << "Введiть назву книги для вставлення у список (end для виходу): " << endl; cin >> n; if(!strcmp(n, "end")) break; cout << "Введiть iм'я автора : " << endl; cin >> a; cout << "Введiть рiк написання, кiлькicть сторiнок i цiну: " << endl; cin >> pa >> y >> pr; strcpy(p->name, n); strcpy(p->author, a); p->page = pa; p->year = y; p->price = pr; } pt = start; p = start; while(p->next) { cout << p->name << "\t" << p->author << "\t" << p->year << "\t" << p->page << "\t" << p->price << endl; p = p->next; } return 0; } Володар перснiв Дж.Толкiн 1968 342 100 Гордiсть i упередження Дж.Остен 1856 230 47 Темнi початки Ф.Пуллман 1980 248 30 Автостопом Галактикою Д.Aдамс 1978 145 73.5 Гаррi Поттер (серiя) Дж.Роулiнг 1856 346 55.49 Убити пересмiшника Х.Лi 1890 310 64.99 Вiннi Пух i всi всi всi А.Мiлн 1910 201 23.49 1984(колекцiя) Д.Оруелл 1987 232 114.49 Хронiки Нарнiї Кл.Льюiс 1987 260 89.9 Джейн Ейр Ш.Бронте 1965 420 44.99 Виверт-22 Дж.Хеллер 1970 240 22 Грозовий перевал Е.Бронте 1864 168 15 Спiв птахiв С.Фолкс 1914 250 29.99 Ребекка Д.Морье 1749 360 67.99 Над прiрвою в житi Дж.Селлiнджер 1856 286 34.5 Вiтер у вербах К.Грем 1876 320 60.3 Великi надiї Ч.Дiккенс 1983 256 56.7 Маленькi жiнки Л.Елкотт 1977 180 35.90 Мандолiна капiтана К.Берньер 1948 230 45 Вiйна i мир Л.Толстой 1968 460 79.89 даные построины так: Книга, Автор, год создания, количество страниц, цена книги. Заранее извиняюсь за орфогрфические ошыбки.
0
|
||||||
| 24.12.2014, 02:58 | |
|
Ответы с готовыми решениями:
0
Ошибка при динамическом выделении памяти Ошибка при динамическом выделении памяти |
| 24.12.2014, 02:58 | |
|
Помогаю со студенческими работами здесь
1
Ошибка при очистке памяти в динамическом массиве Ошибка доступа к памяти при работе с потоками
Ошибка обращения к памяти при работе цикла (access violation) 3 коротких. Возникла ошибка при работе первых 64 Кб основной памяти. что делать ?7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|