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

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

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

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

25.04.2014, 11:04. Просмотров 212. Ответов 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++ Работа со стеком
C++ Работа со стеком
C++ Работа со СТЕКОМ!!!!!!:)
Работа со стеком! C++
C++ Работа со стеком.
C++ Работа со стеком
Работа с матрицей - исправить ошибки в коде C++
C++ Работа со структурами, исправить ошибки в коде
Работа со стеком C++
Работа со стеком. Исправить функцию удаления памяти 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;
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 234
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
Сообщений: 234
27.04.2014, 14:45  [ТС]     Исправить ошибки. Работа со стеком #5
Цитата Сообщение от Меорн Посмотреть сообщение
се правильно. Она не инициализирована. Впрочем как и в исходном коде. Вопрос был в исправлении конкретной ошибки при сборке программы. Так ведь? Если нужно что бы программа работала, опишите подробно что она должна делать
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая удаляет из линейного списка входной последовательности целых чисел:

14. Узел, содержащий число, равное числу предыдущего узла списка.
Меорн
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     Исправить ошибки. Работа со стеком
Ответ Создать тему
Опции темы

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