Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855

Не выполняется функция удаления

15.11.2012, 16:15. Показов 1793. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция удаления не выполняется.
Вот код:

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
#include <iostream>
#define MAX 15
 
using namespace std;
 
char *stack[MAX]; // Ìàññèâ äëÿ ñòåêà
int tos=0; // Äëÿ âåðøèíû ñòåêà
 
void push(char *i) // Ôóíêöèÿ äîáàâëåíèÿ ýëåìåòà â ñòýê
{
    if(tos >= MAX) // Ïðîâåðêà íà çàïîëíåííîñòü ñòåêà
    {
        printf("Steck polon\n");
        return;
    }
    strcpy(stack[tos],i); // Çàïèñûâàåì ñòðîêó â ñòýê
    tos = tos + 1; // Óâåëè÷èâàåì âåðøèíó ñòýêà
}
 
int size() // Äëÿ îïðåäåëåíèÿ ðàçìåðà ñòåêà
{
    if (tos >= 0) return tos;// Åñëè áîëüøå íóëÿ, òî âîçâðàùàåì òåêóùåå çíà÷åíèå âåðøèíû ñòýêà
    else return 0; // èíà÷å âîçâðàùàåì íîëü
}
 
char *pop(void) // Ôóíêöèÿ âûòàñêèâàíèÿ ýëåìåíòà èç ãîëîâû
{
    char *str = new char[30]; // Áóôôåð
    tos = tos - 1; // Ñäâèãàåìñÿ îò ãîëîâû âíèç
    if(tos < 0) // Åñëè âåðøèíà ìåíüøå íóëÿ, òî ñòýê ïóñòîé
    {
        printf("Steck pust\n");
        return 0;
    }
    str = stack[tos]; //èíà÷å â áóôôåð ïîìåøàåì òåêóùåå çíà÷åíèå âåðøèíû
    return str; // âåçâðàùàåì ýòî çíà÷åíèå
}
 
void delet(char *element) // Ôóíêöèÿ óäàëåíèÿ
{
    int razmer = size(); // Ïîëó÷àåì ðàçìåðíîñòü ñòåêà
    char *buf[MAX]; // Äëÿ áóôôåðà, èñ÷ïîëüçóåòñÿ ïðè óäàëåíèè
    for(int i = 0;i<MAX;i++) // ÂÛäåëåíèå ïàìÿòè
    {
        buf[i] = new char[30];
    }
    int c = 0; // Ñ÷åò÷èêè
    int ravn = 0;
    for(int i = 0;i<=size();i++) // Öèêë äëÿ óäàëåíèÿ
    {
        /*Ïðîâåðÿåì,åñëè íå ðàâíû ýëåìåíò èç
        ñòåêà è ýëåìåíò ââåäåäíûé ñ êëàâèàòóðû,
        òî êîïèðóåì â áóôôåð
        óâåëè÷èâàåì ñ÷åò÷èê
        è óäàëÿåì ïîëíîñòüþ äàííóþ ÿ÷åêó èç ñòåêà*/
        if (strcmp(element,stack[i])!=0)
        {
            strcpy(buf[c],stack[i]);
            c = c + 1;
            delete stack[i];
        }
        else //èíà÷å ïðîñòî óäàëÿåì ïîëíóñòüþ ÿ÷åéêó èç ñòåêà
        {
            delete stack[i];
            ravn = ravn + 1;
        }
    }
    tos=0;
    /*Âûäåëÿåì ïàìÿòü äëÿ ñòåêà, òàê êàê îíà áûëà
    óäàëåíà
    è êëàäåì â ñòåê çíà÷åíèÿ*/
    for (int i=0;i<=(razmer-ravn);i++)
    {
        stack[i] = new char[30];
        push(buf[i]);
    }
}
 
int main() // Îcíîâíîå òåëî ïðîãðàììû
{
    system("chcp 1251");
    setlocale(0, "rus");
    
    for (int i = 0;i<MAX;i++) // Âûäåëåíèå ïïàìÿòè äëÿ ýëåìåíòîâ ñòýê
    {
        stack[i] = new char[30];
    }
    int NumberOfElements = 0; // ×èñëî ýëåìåíòîâ ñòåêà
    char *Element = new char[30]; // Äëÿ ââîäà ýëåìåíòà äëÿ óäàëåíèÿ
    cout << "Ñêîëüêî ýëåìåíòîâ äîáàâèòü: "; // Ââîä êîëè÷åñòâà ýëåìåíòîâ ñòåêà
    cin >> NumberOfElements;
    cout << "Ââåäèòå ýëåìåíòû" << endl;
    
    for (int i = 0;i < NumberOfElements; i++) // Ââîä ýëåìåíòîâ
    {
        cout << "Ýëåìåíò " << i << ": ";
        cin >> Element;
        push(Element);
    }
    cout << "Âåðõíèé ýëåìåíò: " << pop() << endl; // Ââîä ýëåìåíòà äëÿ óäàëåíèÿ
    cout << "Êàêîé ýëåìåíò óäàëèòü: ";
    char *ItemToDelete = new char[30];
    cin >> ItemToDelete;
    delet(ItemToDelete); // Óäàëåíèå ýëåìåíòà
    cout <<"Âåðõíèé ýëåìåíò: " << pop() << endl << endl; // Ïå÷àòü òåêóùåé âåðøèíû ñòåêà
    system("PAUSE");
}
Добавлено через 5 часов 13 минут
Помогите хоть кто нибудь...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2012, 16:15
Ответы с готовыми решениями:

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой нужно удалить весь текст в скобках,...

Не выполняется функция
Здравствуйте. C++ в Atmel Studio. Проблема в том, что компилятор не обращает никакого внимания на самодельную функцию и никак в неё не...

Функция удаления на С
Помогите исправить ошыбки в удалении вот полный код: #include &lt;stdio.h&gt; #include&lt;iostream.h&gt; #include &lt;conio.h&gt; void...

20
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
17.11.2012, 20:56
Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <string>
#include <limits>
#define MAX 15
 
using namespace std;
struct sport
{
    string fio;
    string vid;
    string fak;
    string spc;
    string lvl;
} *stack[MAX]; // Массив для стека
int tos=0; // Для вершины стека
void print(sport *elem) {
    
    cout<<"fio: "<<elem->fio<<endl;
    cout<<"vid: "<<elem->vid<<endl;
    cout<<"fak: "<<elem->fak<<endl;
    cout<<"spc: "<<elem->spc<<endl;
    cout<<"lvl: "<<elem->lvl<<endl;
 
}
void push(sport *elem) // Функция добавления элемета в стэк
{
    if(tos >= MAX) // Проверка на заполненность стека
    {
        cout << "Стек полон!" << endl;
        return;
    }
    stack[tos]=elem;
    tos = tos + 1; // Увеличиваем вершину стэка
}
 
int size() // Для определения размера стека
{
    if (tos >= 0) return tos;// Если больше нуля, то возвращаем текущее значение вершины стэка
    else return 0; // иначе возвращаем ноль
}
 
sport *pop(void) // Функция вытаскивания элемента из головы
{
    tos = tos - 1; // Сдвигаемся от головы вниз
    if(tos < 0) // Если вершина меньше нуля, то стэк пустой
    {
        cout << "Стек пуст!" << endl;
        return 0;
    }
    return stack[tos]; // везвращаем это значение
}
 
sport *delet(int id) // Функция удаления
{
    if ((id>tos)||(id<=0)) return NULL;
    sport* elem=stack[id-1];
    for (int i=id; i<tos; i++)
        stack[i-1]=stack[i];
    tos--;
    return elem;
 
}
void clear(){
    for (int i=0; i<tos; i++)
        delete stack[i];
}
 
 /* 
*/
void inputElement(sport * obj)
{
     
        cout << "Введите данные Ф.И.О.: ";
        
        getline(cin, (obj->fio));
 
        cout << "Введите данные о спорте: ";
        getline(cin, (obj->vid));
        cout << "Введите данные о факультете: ";
        getline(cin, (obj->fak));
        cout << "Введите данные о специальности: ";
        getline(cin, (obj->spc));
        cout << "Введите данные о возрасте: ";
        getline(cin, (obj->lvl));
        cout << endl;
} 
int main() // Оcновное тело программы
{
    //system("chcp 1251");
    setlocale(LC_ALL, "russian");
    
    int n;
    cout<<"Введи ты n:";
    (cin)>>n;
 
 
    
    sport* Element; // Для ввода элемента
    for (int i = 0;i<n;i++){
        Element=new sport;
        inputElement(Element);
        push(Element);
        //delete Element;
    }
    
    Element=pop();
    cout << "Вершина стека: "<< endl;
    print(Element);
    cout << "Какой элемент удалить? (впишите номер): "; // Ввод элемента для удаления
    cin>>n;
    delete delet(n);
    Element=pop();
    cout << "Вершина стека: "<< endl;
    print(Element);
    clear();
    
    system("PAUSE");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2012, 20:56
Помогаю со студенческими работами здесь

Функция, подключенная в VS не выполняется
Добрый день. Помогите пожалуйста разобраться. VS 2010 Win8 Решил сделать программу, начал с меню и захотел вывести все функции и...

Почему выполняется функция?
Не могу понять, почему таки выполняется функция? Значения по умолчанию нет, параметры не принимает, а ошибок не выдает Visual Studio 2015 ...

Не выполняется функция getline()
Добрый вечер, уважаемые программисты! Написал программу, содержащую класс, который имеет два поля: номер и имя, и два метода: ввод и...

Функция getche() не выполняется
В MVS 2015 не выполняется ф-ция getche() (в коде строка 52) по этому цикл выполняется всего один раз. Как это исправить? Проверял код в...

Не выполняется восстановление системы после удаления avast
Здравствуйте, прошу мне помочь! Все случилось с момента,когда удалила антивирус Аваст, в ходе удаления появлялись сообщения (создание...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru