Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 6
1

Односвязные линейные списки

25.02.2021, 12:34. Показов 1355. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно создать список, в котором хранится информация о книгах (название, автор, количество страниц, год выпуска, стиль). Вывести со списка книги художественного стиля. Работу сделать на языке Си.

Вот мой код, помогите, пожалуйста, исправить:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>
 
struct book
{
    char name[30];
    char author[30];
    int num_page;
    int year;
    char style[30];
    struct book* next;
};
struct book* poperedbook, * element, * pershiy, * novii, * ostan;
 
 
 
void Stvorutu(void)
{
    element = (struct book*)malloc(sizeof(struct book));
    pershiy = element;
 
    do
    {
        poperedbook = element;
 
        printf("Введите название книги, автора, количество страниц, год выпуска и стиль \n");
        scanf("%s %s %d %d %s", element->name, element->author, &element->num_page, \
            & element->year, element->style);
 
        element->next = (struct book*)malloc(sizeof(struct book));
        element = element->next;
    } while (poperedbook->num_page != 0);
 
    ostan = poperedbook;
    poperedbook->next = NULL;
}
 
void hood(void)
{
    element = pershiy;
 
    do
    {
        if (element->style == "худ")
        {
            printf("Название книги: %s , Автор: %s , Количество страниц: %d , Рік випуска: %d , Стиль: %s \n", \
                element->name, element->author, &element->num_page, &element->year, element->style);
            poperedbook = element;
            element = element->next;
        }
    } while (element != NULL);
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    Stvorutu();
    hood();
 
 
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2021, 12:34
Ответы с готовыми решениями:

Односвязные линейные списки
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct el_sp { int info; el_sp*next; };...

Односвязные линейные списки
Вводится последовательность вещественных чисел, признак конца 0. Необходимо заменить отрицательные...

Односвязные списки
Есть полностью рабочий код, который заполняет список случайными элементами и выводит его: #include...

Односвязные списки: чтение из файла
Здравствуйте. Я написал код чтения из файла int main() { //------------WORK WITH THE OUR...

8
Модератор
Эксперт функциональных языков программированияЭксперт Python
37443 / 20814 / 4281
Регистрация: 12.02.2012
Сообщений: 34,232
Записей в блоге: 14
25.02.2021, 20:18 2
А что не работает?
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 6
25.02.2021, 22:12  [ТС] 3
С циклом if ничего не выводит, а если убрать его, нормально выводит весь список.
0
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
25.02.2021, 23:24 4
Цитата Сообщение от Valera_Ripper Посмотреть сообщение
С циклом if ничего не выводит,
Строки не сравнивают так как вы попытались это сделать. man strcmp
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 6
26.02.2021, 11:48  [ТС] 5
Так тоже не работает:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void hood(void)
{
    element = pershiy;
 
    char hoodper[20] = "худ";
 
    do
    {
        if (strcmp(element->style, hoodper) == 0)
        {
            printf("Название книги: %s , Автор: %s , Количество страниц: %d , Год випуска: %d , Стиль: %s \n", \
                element->name, element->author, &element->num_page, &element->year, element->style);
            poperedbook = element;
            element = element->next;
        }
    } while (element != NULL);
}
0
Заблокирован
26.02.2021, 13:53 6
Valera_Ripper, все работает. просто у тебя все через одно место написано. неправильно

C
1
2
printf("Название книги: %s , Автор: %s , Количество страниц: %d , Год випуска: %d , Стиль: %s \n", \
                element->name, element->author, &element->num_page, &element->year, element->style);
зачем при печати ссылка на &element->num_page, &element->year. Это не scanf, а printf.
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 6
26.02.2021, 14:24  [ТС] 7
Без ссылок все-ровно не работает. Тем более, без цикла if весь список выводится
0
Заблокирован
26.02.2021, 14:39 8
Цитата Сообщение от Valera_Ripper Посмотреть сообщение
Без ссылок все-ровно не работает.
причём тут работает, не работе. Говорю - бред лепишь.
тем более, что работает: просто ты ересь написал и сам даже не понимаешь, как она работает
Миниатюры
Односвязные линейные списки  
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12835 / 7571 / 1765
Регистрация: 25.07.2009
Сообщений: 13,967
26.02.2021, 15:56 9
Лучший ответ Сообщение было отмечено Valera_Ripper как решение

Решение

Цитата Сообщение от Valera_Ripper Посмотреть сообщение
Так тоже не работает
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void hood(void)
{
    element = pershiy;
 
    char hoodper[20] = "худ";
 
    do
    {
        if (strcmp(element->style, hoodper) == 0)
        {
            printf("Название книги: %s , Автор: %s , Количество страниц: %d , Год випуска: %d , Стиль: %s \n", \
                element->name, element->author, &element->num_page, &element->year, element->style);
            // poperedbook = element; <-- это вообще что?
            // element = element->next;
        }
        element = element->next;
    } while (element != NULL);
}
1
26.02.2021, 15:56
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2021, 15:56
Помогаю со студенческими работами здесь

Односвязные списки. Удаление первого элемента
Помогите пожалуйста. Почему срабатывает точка останова на free(p) ? CAR* remove_begin(CAR* p) {...

Линейные упорядоченные списки
Помогите пожалуйста написать программу, составляющую по трем символьным файлам линейные...

Линейные двусвязные списки
Написать программу с объяснением задание во вложениях. В Си начинаю только работать , поэтому не...

Не получается создать линейные списки
при изучение указателей столкнулся с тем, что не могу создать линейные списки. #include...

Линейные однонаправленные списки: выяснить, имеются ли совпадающие элементы
Всем привет помогите с задачей на языке си. Aлгоритмов обработки динамических структур данных. ...

односвязные линейные списки
Дан текстовый файл, компонентами которого являются целые числа. Не упорядочивая содержимое файла,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как запретить подсветку выделенного текста с помощью CSS
InfoMaster 20.01.2025
Подсветка текста при выделении является стандартным поведением браузера, которое не всегда соответствует дизайнерским решениям или функциональным требованиям веб-приложения. Выделение текста может. . .
Как выполнить другую программу или системную команду из Python
InfoMaster 20.01.2025
Python предоставляет мощные инструменты для выполнения системных команд и управления внешними процессами, что делает его идеальным выбором для автоматизации различных задач системного. . .
Как узнать директорию bash-скрипта из самого bash-скрипта
InfoMaster 20.01.2025
При разработке bash-скриптов одной из важных задач является определение директории, в которой находится исполняемый скрипт. Это критически важно для корректной работы с файлами, загрузки конфигураций. . .
В чем разница между let и var в JavaScript
InfoMaster 20.01.2025
JavaScript прошел длинный путь эволюции с момента своего создания в 1995 году. Одним из важнейших аспектов развития языка стало совершенствование механизмов объявления и управления переменными. . . .
Эффективная работа со строками в Go
InfoMaster 20.01.2025
Язык программирования Go предлагает уникальный подход к работе со строками, который существенно отличается от многих других языков программирования. В Go строки представляют собой неизменяемые. . .
Как проверить, что отображение (map) содержит ключ в Go
InfoMaster 20.01.2025
Отображения (maps) в языке программирования Go представляют собой мощные структуры данных, которые позволяют хранить пары ключ-значение и обеспечивают быстрый доступ к данным по уникальным. . .
Как организовать домашнее хранилище фильмов с общим доступом для всей семьи
InfoMaster 20.01.2025
Преимущества домашнего медиасервера В современном мире, где цифровой контент стал неотъемлемой частью нашей жизни, организация домашнего медиасервера становится все более актуальной задачей. . . .
Перспективы развития жестких дисков: есть ли у них будущее?
InfoMaster 20.01.2025
История и эволюция жестких дисков История развития жестких дисков начинается в 1956 году, когда компания IBM представила первое устройство для хранения данных на магнитных пластинах - IBM 350. . .
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru