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

Двунаправленный список - ошибка где-то в коде

09.02.2016, 21:14. Показов 576. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытался разобрать пример, переписал, всё запускается, но, когда пытаюсь ввести символ, вылетает.
Всё 3 раза перепроверил, так и не смог понять в чём проблема.
HELP
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
typedef struct item {
    char data;
    struct item *next;
    struct item *previous;
} Item;
 
void insert(char value);
void cut(char value);
void display(void);
 
item *head = NULL, *tail=NULL;
#define FALSE 0
#define TRUE 1
int main()
{
    int done = FALSE;
    char c, value;
    while (!done) {
        display();
        printf("\n\nA)dd, D)elete, Q)uit\n\n");
        c = _getch();
        switch (toupper(c)) {
        case 'A':
            printf("\nEnter the character: ");
            value = _getch();
            insert(value);
            break;
        case 'D':
            if (head != NULL) {
                printf("\n Enter the chatacter to be deleted: ");
                value = _getch();
                cut(value);
            }
            break;
        case 'Q':
            done = TRUE;
            break;
                
        }
    }
    return 0;
}
 
void insert(char value)
{
    item *p, *current = head;
    p = (item *)malloc(sizeof(Item));
    p->data = value;
    p->next = p->previous = NULL;
    if (head = NULL) {
        head = tail = p;
        return;
    }
    while (current != NULL && value > current->data)
        current = current->next;
 
    if (current == head) {
        p->next = head;
        head->previous = p;
        head = p;
    }
    else if (current == NULL) {
        tail->next = p;
        p->previous = tail;
        p->next = NULL;
        tail = p;
    }
    else {
        current->previous->next = p;
        p->previous = current->previous;
        current->previous = p;
        p->next = current;
    }
}
 
void cut(char value)
{
    item* p=head;
    while (p != NULL && p->data != value)
        p = p->next;
    if (p == NULL)
        return;
    if (p == head){
        head = head->next;
        head->previous = NULL;
    }
    else if (p == tail) {
        tail = tail->previous;
        tail->next = NULL;
    }
    else {
        p->previous->next = p->next;
        p->next->previous = p->previous;
    }
        free(p);
}
void display(void)
{    
    item* p = head;
    system("cls");
    if (p == NULL)
        puts("List is empty\n");
    else {
        printf("NULL <-> ");
        while (p != NULL) {
            printf("%c <-> ", p->data);
            p = p->next;
        }
        printf("NULL");
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2016, 21:14
Ответы с готовыми решениями:

Двунаправленный неупорядоченный список. Ошибка Встречено '=', а ожидалось ';'
делал задачку и вот возникла проблемка: Строка 162 : Встречено '=', а ожидалось ';' Сама...

Двунаправленный список: ошибка вывода в обратном порядке
Здравствуйте. Пишу двунаправленный список. Вот все готово, но ошибка с выводом в обратном порядке. ...

Ошибка где то в коде
Ошибка где то в коде Компилирую все норм, работает до действия когда начинаю получать данные с...

Где ошибка в коде?
Имею код, хочу сделать, чтобы при нажатии на объект происходило затемнение...Делаю клик на первый...

2
2687 / 2259 / 244
Регистрация: 03.07.2012
Сообщений: 8,224
Записей в блоге: 1
09.02.2016, 21:40 2
Флаг Отладчик в руки и - вперед.
0
3 / 3 / 8
Регистрация: 31.01.2016
Сообщений: 129
09.02.2016, 22:34 3
Не понимаю как она у тебя запускалась...
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
typedef struct item {
    char data;
    struct item *next;
    struct item *previous;
} Item;
 
void insert(char value);
void cut(char value);
void display(void);
 
Item *head = NULL, *tail=NULL;
#define FALSE 0
#define TRUE 1
int main()
{
    int done = FALSE;
    char c, value;
    while (!done) {
        display();
        printf("\n\nA)dd, D)elete, Q)uit\n\n");
        c = getchar();
        switch (toupper(c)) {
        case 'A':
            printf("\nEnter the character: ");
            value = getchar();
            insert(value);
            break;
        case 'D':
            if (head != NULL) {
                printf("\n Enter the chatacter to be deleted: ");
                value = getchar();
                cut(value);
            }
            break;
        case 'Q':
            done = TRUE;
            break;
                
        }
    }
    return 0;
}
 
void insert(char value)
{
    Item *p, *current = head;
    p = (Item *)malloc(sizeof(Item));
    p->data = value;
    p->next = p->previous = NULL;
    if (head == NULL) {
        head = tail = p;
        return;
    }
    while (current != NULL && value > current->data)
        current = current->next;
 
    if (current == head) {
        p->next = head;
        head->previous = p;
        head = p;
    }
    else if (current == NULL) {
        tail->next = p;
        p->previous = tail;
        p->next = NULL;
        tail = p;
    }
    else {
        current->previous->next = p;
        p->previous = current->previous;
        current->previous = p;
        p->next = current;
    }
}
 
void cut(char value)
{
    Item* p=head;
    while (p != NULL && p->data != value)
        p = p->next;
    if (p == NULL)
        return;
    if (p == head){
        head = head->next;
        head->previous = NULL;
    }
    else if (p == tail) {
        tail = tail->previous;
        tail->next = NULL;
    }
    else {
        p->previous->next = p->next;
        p->next->previous = p->previous;
    }
        free(p);
}
void display(void)
{    
    Item* p = head;
    system("cls");
    if (p == NULL)
        puts("List is empty\n");
    else {
        printf("NULL <-> ");
        while (p != NULL) {
            printf("%c <-> ", p->data);
            p = p->next;
        }
        printf("NULL");
    }
}
Добавлено через 8 минут
89 строка
Цитата Сообщение от Dimitrij1 Посмотреть сообщение
head->previous = NULL;
это удалить тогда ошибки не будет.
0
09.02.2016, 22:34
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2016, 22:34
Помогаю со студенческими работами здесь

Где ошибка в коде ?
задача Треугольный ряд чисел : первое число 1 второе на 2 больше чем первое , 3е на 3 больше...

где ошибка в коде?
видимо неправильно работает функция симметричности матрицы. потому что ввожу не симметричную...

Где ошибка в коде?
http://stinka.pp.ua/post/025/ Блок footer справа, а должен быть снизу. Пример :...

Где ошибка в коде
по запросу строки программа должна выдавать строку с увеличением на 2 .Например запрашиваю 1 строку...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru