Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
#1

Исправить ошибки. Работа со стеком - C++

25.04.2014, 11:04. Просмотров 219. Ответов 5
Метки нет (Все метки)

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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
struct ult
{
    int x;
    ult *pravo;
};
 
int main()
{
    setlocale (LC_ALL, "Russian");
    ult *k = NULL, *top = NULL;
    int y, a, b = 0, Head;
    cout << "Введите количество чисел: ";
    cin >> y;
    cout << endl << "Введите числа: " << endl;
    for(int i = 0; i < y; i++)
    {
        cin >> a;
        k = new ult;
        k->pravo = top;
        k->x = a;
        top = k;
    }
    cout << endl << "Стек:" << endl;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
    k = top;
    ult *v = top;
    while(k != NULL)
    {
        for (ult *p1 = Head, *p2 = Head->pravo; p2 != NULL; p1 = p1->pravo, p2= p1->pravo){
        if (p1->x == p2->x){
            p1->pravo = p2->pravo;
            delete p2;
        }
        }
        if(b == 1)
        {
            if(k == top)
            {
                top = k->pravo;
                delete k;
                k = top;
            }
            else
            {
                v->pravo = k->pravo;
                delete k;
                k = v->pravo;
            }
            goto end;
        }
        else
        {
            v = k;
            k = k->pravo;
        }
        b = 0;
    }
end:
    {
    cout << endl << endl << "Cтек без узла, содержащего число, равное числу предыдущего узла списка: " << endl;
    k = top;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
    cout << endl;
    system("pause");
    }
}
Ошибки:
error C2227: выражение слева от "->pravo" должно указывать на тип класса, структуры или объединения либо на универсальный тип
error C2440: инициализация: невозможно преобразовать "int" в "ult *"
IntelliSense: выражение должно иметь тип указателя
IntelliSense: значение типа "int" нельзя использовать для инициализации сущности типа "ult *"
Все ошибки в этой строке:
C++
1
for (ult *p1 = Head, *p2 = Head->pravo; p2 != NULL; p1 = p1->pravo, p2= p1->pravo){
Добавлено через 15 часов 47 минут
Подниму!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 11:04     Исправить ошибки. Работа со стеком
Посмотрите здесь:

Работа со стеком. Исправить функцию удаления памяти - C++
Нужно исправить функцию удаления стека из памяти. Когда доходим до нее, программа аварийно завершается. Также почему-то не выводит на...

Работа с матрицей - исправить ошибки в коде - C++
работать не хочет... вылетает после 35 строки.(компилит нормально) как быть друзья? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Работа со структурами, исправить ошибки в коде - C++
Задаю структуру. struct str_Discipl { int Lektchii, Lab, Prakt; String Naimenovanie_distchipliny; }Discipl; struct...

Нужно исправить ошибки (работа с графикой, со скрином ошибок) - C++
#include &lt;graphics.h&gt; #include &lt;stdlib.h&gt; #define _USE_MATH_DEFINES #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; ...

Работа со стеком! - C++
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include &lt;iostream&gt; #include &lt;stack&gt; int main...

работа со стеком - C++
попалась такая задача: создать стек для положительных и отрицательных чисел. максимальный размер стека ввести с экрана. Создать функции для...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
25.04.2014, 12:37     Исправить ошибки. Работа со стеком #2
вместо:
C++
1
int y, a, b = 0, Head;
так:
C++
1
2
int y, a, b = 0;
ult* Head;
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
25.04.2014, 18:51  [ТС]     Исправить ошибки. Работа со стеком #3
При компиляции: Run-Time Check Failure #3 - The variable 'Head' is being used without being initialized.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
26.04.2014, 21:45     Исправить ошибки. Работа со стеком #4
Все правильно. Она не инициализирована. Впрочем как и в исходном коде. Вопрос был в исправлении конкретной ошибки при сборке программы. Так ведь? Если нужно что бы программа работала, опишите подробно что она должна делать.
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
27.04.2014, 14:45  [ТС]     Исправить ошибки. Работа со стеком #5
Цитата Сообщение от Меорн Посмотреть сообщение
се правильно. Она не инициализирована. Впрочем как и в исходном коде. Вопрос был в исправлении конкретной ошибки при сборке программы. Так ведь? Если нужно что бы программа работала, опишите подробно что она должна делать
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая удаляет из линейного списка входной последовательности целых чисел:

14. Узел, содержащий число, равное числу предыдущего узла списка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 19:42     Исправить ошибки. Работа со стеком
Еще ссылки по теме:

Работа со стеком - C++
Ребят, помогите пожалуйста с заданиями: Задание 1 Реализовать стек списком. Все стандартные операции со стеком должны быть...

Работа со стеком - C++
Создать программу, реализовав работу со структурой данных - стеком. В программе реализовать добавление и удаление элементов.

Работа со стеком. - C++
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл из стандартной библиотеки?

Работа со стеком - C++
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ Backspace, т.е. строка abc#d##c в...

Работа со СТЕКОМ!!!!!!:) - C++
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие последовательности символов. ---...

Работа со стеком - C++
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него повторяющиеся числа. Вывести элементы...


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

Или воспользуйтесь поиском по форуму:
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
27.04.2014, 19:42     Исправить ошибки. Работа со стеком #6
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
#include <iostream>
 
using namespace std;
 
struct ult
{
    int x;
    ult *pravo;
};
 
int main()
{
    setlocale (LC_ALL, "Russian");
    ult *k = NULL, *top = NULL;
    int y, a, b = 0;
    cout << "Введите количество чисел: ";
    cin >> y;
    cout << endl << "Введите числа: " << endl;
    for(int i = 0; i < y; i++)
    {
        cin >> a;
        k = new ult;
        k->pravo = top;
        k->x = a;
        top = k;
    }
    cout << endl << "Стек:" << endl;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
 
    for (ult *p1 = top, *p2 = top->pravo; p2 != NULL; p1 = p1->pravo, p2 = (p1 != NULL) ? p1->pravo : NULL){
        while((p2 != NULL)&&(p1->x == p2->x)) {
            p1->pravo = p2->pravo;
            delete p2;
            p2 = p1->pravo;
        }
    }
 
    cout << endl << endl << "Cтек без узла, содержащего число, равное числу предыдущего узла списка: " << endl;
    k = top;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
    cout << endl;
    system("pause");
}
так?
Yandex
Объявления
27.04.2014, 19:42     Исправить ошибки. Работа со стеком
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru