|
0 / 0 / 0
Регистрация: 24.12.2014
Сообщений: 1
|
||||||
Ошибка при работе со списками при динамическом выдилении памяти24.12.2014, 02:58. Показов 766. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|