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

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

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

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

25.04.2014, 11:04. Просмотров 220. Ответов 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 минут
Подниму!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 11:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправить ошибки. Работа со стеком (C++):

Работа со стеком. Исправить функцию удаления памяти - 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++
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ Backspace, т.е. строка abc#d##c в...

Работа со стеком - 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;
0
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.
0
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
26.04.2014, 21:45 #4
Все правильно. Она не инициализирована. Впрочем как и в исходном коде. Вопрос был в исправлении конкретной ошибки при сборке программы. Так ведь? Если нужно что бы программа работала, опишите подробно что она должна делать.
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
27.04.2014, 14:45  [ТС] #5
Цитата Сообщение от Меорн Посмотреть сообщение
се правильно. Она не инициализирована. Впрочем как и в исходном коде. Вопрос был в исправлении конкретной ошибки при сборке программы. Так ведь? Если нужно что бы программа работала, опишите подробно что она должна делать
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая удаляет из линейного списка входной последовательности целых чисел:

14. Узел, содержащий число, равное числу предыдущего узла списка.
0
Меорн
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");
}
так?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 19:42
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.04.2014, 19:42
Ответ Создать тему
Опции темы

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