2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121

Ошибка при запуске программы

20.12.2016, 19:38. Показов 723. Ответов 11
Метки нет (Все метки)

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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include "stdafx.h"
#include <iostream>
using namespace std;
class List
{
    class Node
    {
    public:
        int d;
        Node* next;
        Node* prev;
        Node(int dat = 0)
        {
            d = dat;
            next = 0;
            prev = 0;
        }
    };
    Node *pbeg, *pend;
 
public:
    List()
    {
        pbeg = 0;
        pend = 0;
    }
    ~List();
    void add(int d);
    Node* find(int i);
    Node* insert(int key, int d);
    bool remove(int key);
    void print();
    void print_back();
};
void List::add(int d)
{
    Node* pv = new Node(d);
    if (pbeg == 0)
        pbeg = pend = pv;
    else
    {
        pv->prev = pend;
        pend->next = pv;
        pend = pv;
    }
}
Node* List::find(int d)
{
    Node* pv = pbeg;
    while (pv)
    {
        if (pv->d == d)
            break;
        pv = pv->next;
    }
    return pv;
}
Node* List::insert(int key, int d)
{
    if (Node* pkey = find(key))
    {
        Node* pv = new Node(d);
        pv->next = pkey->next;
        pv->prev = ркеу;
        pkey->next = pv;
        if (ркеу != pend)
            (pv->next)->prev = pv;
        else
            pend = pv;
        return pv;
    }
    return 0;
}
bool List::remove(int key)
{
    if (Node* pkey = find(key))
    {
        if (pkey == pbeg)
        {
            pbeg = pbeg->next;
            pbeg->prev *= 0;
        }
        else if (pkey == pend)
        {
            pend = pend->prev;
            pend->next - 0;
        }
        else
        {
            (pkey->prev)->next = pkey->next;
            (pkey->next)->prev = pkey->prev;
        }
        delete pkey;
        return true;
    }
    return false;
}
void List::print()
{
    Node* pv = pbeg;
    cout << endl << "1ist: ";
    while (pv)
    {
        cout << pv->d << ' ';
        pv = pv->next;
    }
    cout << endl;
}
void List::print_back()
{
    Node* pv = pend : cout << endl << " list back: ";
    while (pv)
    {
        cout << pv->d << ' ';
        pv = pv->prev;
    }
    cout << endl;
}
List::~List()
{
    if (pbeg != 0)
    {
        Node* pv = pbeg;
        while (pv)
        {
            pv = pv->next;
            delete pbeg;
            pbeg = pv;
        }
    }
}
int main()
{
    List L;
    for (int i = 2; i < 6; i++)
        L.add(i);
    L.print();
    L.print_back();
    L.insert(2. 200);
    if (!L.remove(5))
        cout << "not found";
    L.print();
    L.print_back();
    system("pause");
}
ошибки такие:
ошибки

1>Компиляция...
1>Listt.cpp
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(32) : error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(32) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(33) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(33) : error C2556: int *List::find(int): перегруженная функция отличается от 'List::Node *List::find(int)' только возвращаемым типом
1> c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(18): см. объявление 'List::find'
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(33) : error C2371: List::find: переопределение; различные базовые типы
1> c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(18): см. объявление 'List::find'
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(39) : error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(39) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(39) : error C2086: int Node: переопределение
1> c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(32): см. объявление 'Node'
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(40) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(40) : error C2556: int *List::insert(int,int): перегруженная функция отличается от 'List::Node *List::insert(int,int)' только возвращаемым типом
1> c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(19): см. объявление 'List::insert'
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(40) : error C2371: List::insert: переопределение; различные базовые типы
1> c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(19): см. объявление 'List::insert'
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(41) : error C2264: List::find: ошибка в определении или объявлении функции; функция не вызвана
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(44) : error C2065: ркеу: необъявленный идентификатор
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(46) : error C2065: ркеу: необъявленный идентификатор
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(53) : error C2264: List::find: ошибка в определении или объявлении функции; функция не вызвана
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(56) : error C2296: *=: недопустимо, левый операнд имеет тип "List::Node *"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(59) : warning C4552: -: оператор не имеет результата; требуется оператор с побочным действием
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(75) : error C2143: синтаксическая ошибка: отсутствие ";" перед ":"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(75) : error C2143: синтаксическая ошибка: отсутствие ";" перед ":"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(94) : error C2143: синтаксическая ошибка: отсутствие ")" перед "константа"
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(94) : error C2660: List::insert: функция не принимает 1 аргументов
1>c:\users\админ\documents\visual studio 2008\projects\listt\listt\listt.cpp(94) : error C2059: синтаксическая ошибка: )

Добавлено через 12 минут
спс за" помощь", большего не ожидал
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2016, 19:38
Ответы с готовыми решениями:

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include &lt;iostream&gt; #include &lt;string.h&gt; #include...

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

Ошибка при запуске программы
Добрый день, подскажите, пожалуйста, в чем причина того, что данная программа не запускается) Можно ещё сказать, как поправить сей код) ...

11
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
20.12.2016, 19:43
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
116
117
118
119
120
#include<iostream>
using namespace std;
class Node {
public:
    int d;
    Node *next;
    Node *prev;
    Node(int dat = 0)
    {
        d = dat; next = 0; prev = 0;
    }
};
class List {
    
    Node *pbeg, *pend;
public:
    List() { pbeg = 0; pend = 0; }
    ~List();
    void add(int d);
    Node * find(int i);
    Node * insert(int key, int d);
    bool remove(int key);
    void print();
    void print_back();
};
void List::add(int d)
{
    Node *pv = new Node(d);
    if (pbeg == 0)
        pbeg = pend = pv;
    else {
        pv->prev = pend;
        pend->next = pv;
        pend = pv;
    }
}
Node * List::find(int d)
{
    Node *pv = pbeg;
    while (pv) {
        if (pv->d == d)break;
        pv = pv->next;
    }
    return pv;
}
Node * List::insert(int key, int d)
{
    if (Node *pkey = find(key)) {
        Node *pv = new Node(d);
        pv->next = pkey->next;
        pv->prev = pkey;
        pkey->next = pv;
        if (pkey != pend) (pv->next)->prev = pv;
        else pend = pv;
        return pv;
    }
    return 0;
}
bool List::remove(int key)
{
    if (Node *pkey = find(key)) {
        if (pkey == pbeg) {
            pbeg = pbeg->next;
            pbeg->prev = 0;
        }
        else if (pkey == pend) {
            pend = pend->prev;
            pend->next - 0;
        }
        else {
            (pkey->prev)->next = pkey->next;
            (pkey->next)->prev = pkey->prev;
        }
        delete pkey;
        return true;
    }
    return false;
}
void List::print()
{
    Node *pv = pbeg;
    cout << endl << "1ist: ";
    while (pv) {
        cout << pv->d << ' ';
        pv = pv->next;
    }
    cout << endl;
}
void List::print_back() {
    Node *pv = pend;
    cout << endl << " list back: ";
    while (pv) {
        cout << pv->d << ' ';
        pv = pv->prev;
    }
    cout << endl;
}
List::~List()
{
    if (pbeg != 0) {
        Node *pv = pbeg;
        while (pv) {
            pv = pv->next;
            delete pbeg;
            pbeg = pv;
        }
    }
}
int main()
{
    List L;
    for (int i = 2; i<6; i++) L.add(i);
    L.print();
    L.print_back();
    L.insert(2, 200);
    if (!L.remove(5))cout << "not found";
    L.print();
    L.print_back();
    system("pause");
}
Добавлено через 25 секунд
Витек1221, всегда пожалуйста, конечно, но вы бы хоть почитали суть ошибок. Вы этого не делали.
0
2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121
20.12.2016, 20:57  [ТС]
а что там было не так я не понял то? вроде ошибок не было. сейчас кстати все работает, только при добавлении "stdafx.h"
но снова ошибка : Необработанное исключение в "0x00e01a11" в "Listt.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefeee". программа запускается но вместе с тем и это окно, все это сразу виснет и не отвечает
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
20.12.2016, 21:05
Цитата Сообщение от Витек1221 Посмотреть сообщение
а что там было не так я не понял то?
Ну, вы описание ошибок как прочтете, так и поймете все.
1
2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121
20.12.2016, 21:09  [ТС]
спасибо, конечно, а можете сказать куда теряется число 5 - последний элемент списка?, после вставки 200 в список он из 2 3 4 5 превращается в 2 200 3 4 -1789162
0
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
20.12.2016, 21:11
Витек1221, строка 68 pend->next - 0; поменять на pend->next = 0;
0
2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121
20.12.2016, 21:16  [ТС]
а как для этого списка найти максимальный элемент (при условии, что список не пуст);
0
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
20.12.2016, 21:32
Витек1221, по анлогии с методом List::find, только условие видоизмените для поиска максимального.
0
2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121
20.12.2016, 22:17  [ТС]
хотел спросить, как сделать цикл, в котором будет перебераться список и будет определяться число вхождений элемента. это надо вписать в find'e , но как
0
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
20.12.2016, 22:30
Витек1221,
C++
1
2
3
4
5
6
7
8
9
Node * List::find(int d)
{
    Node *pv = pbeg;
    while (pv) { // пока не достигнут последний элемент
        if (pv->d == d)break; // если текущий элемент равен искомому выходим из цикла
        pv = pv->next; // берем следующий элемент списка
    }
    return pv;
}
Добавьте в класс переменную счетчик и увеличивайте её, когда искомый равен текущему.
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12894 / 6755 / 1814
Регистрация: 18.10.2014
Сообщений: 17,086
20.12.2016, 22:38
Цитата Сообщение от Витек1221 Посмотреть сообщение
а что там было не так я не понял то?
"Не так" у вас в коде следующее:

1. При определении методов класса List за пределами класса List, тип возврата надо указывать не как Node, а как List::Node. При этом вытаскивать Node наружу из класса List, как это сделал Nishen, совершенно не нужно. Правильнее оставить Node внутри, как у вас и было задумано изначально.

2. У вас русские буквы используются в иднтификаторах типа ркеу. Внимательнее следите за тем, что пишете.

3. Что такое pbeg->prev *= 0; ???

4. Что такое pend->next - 0; ???

5. Что такое Node *pv = pend: ???

6. Что такое L.insert(2. 200); ???

Это ваши ошибки компиляции. А что там у вас еще с собственно реализацией творится - надо отлаживать.
1
2 / 2 / 1
Регистрация: 20.12.2016
Сообщений: 121
21.12.2016, 10:29  [ТС]
да вроде все отладил, мой визуал требовал "stdafx.h" нужно только было сделать функции поиска максимального элемента из списка и замену всех вхождений элемента х на у . и результат надо было вводить посредством меню , а не передачи конструктору параметров и выводить в тхт файл.

Добавлено через 23 минуты
а как сделать счетчик вхождений элемента, если он есть? я зделал как мне посоветовал парень выше, добавил в класс переменную value,увеличиваю ее, но опять появляются ошибки совсем в других методах...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2016, 10:29
Помогаю со студенческими работами здесь

Ошибка при запуске программы
Здравствуйте. Написал следующую программку #include &lt;cstdlib&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt; #define...

Ошибка при запуске программы
помогите исправить, программа компилируется, но выдаёт ошибку #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; ...

Ошибка при запуске программы
Сделал алгоритм слияния, нужно проверить время сортировки от 10000 элементов до 100000 (10тыс., 20тыс., ... 100тыс.) При 10 и 20 тысячах...

Ошибка при запуске программы
Здравствуйте! Нужно исправить ошибки в программе,почему-то не запускается функция поиска #include &lt;stdio.h&gt; #include...

Ошибка при запуске программы
Всем привет, компилю программу в Visual 2010, язык C++. Компилирую как в Debug, так и в Release. На своем домашнем пк все норм программа...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM - будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru