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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти число вершин и ребер в графе окресности каждой пары вершин (алгоритм решения) http://www.cyberforum.ru/cpp-beginners/thread698312.html
Как найти число вершин и ребер в графе окресности каждой пары вершин? В принципе, я написал, но мне сказал препод мол не то. А написал я следующее: Чтобы получить окресности каждой пары вершин, необходимо вначале вычислить окресность для одной вершины из матрици смежности MS. Результаты записать в вектор Q, из этого вектора уже можно получить матрицу для окресности пар вершин Р. 1) если...
C++ Написать функцию проверки делимости числа на 4 Задание: Для делимости числа на 4 требуется чтобы число из последних двух цифр делилось на 4. Написать функцию проверки делимости числа N, вводимого с клавиатуры на 4. Использовать функцию в программе. Заранее спасибо! Я написал, но она не нравится чем то преподу, по другому не пойму как... #include <iostream> bool multiple(int, int); http://www.cyberforum.ru/cpp-beginners/thread698297.html
Определить количество натуральных делителей произведения a1*a2*…*aN. C++
Задано N натуральных чисел a1,a2,…,aN ( ), каждое из которых находится в интервале от 1 до 10000. Необходимо определить количество натуральных делителей произведения a1*a2*…*aN.
Динамически расширяющийся массив, считывание из файла C++
Добрый День! При каждом проходе по циклу, старая информация стирается, а новая записывается в другой блок, как сделать чтобы старая информация оставалась в массиве и при этом массив увеличивался? FILE *f2 = fopen("BankData.txt","rt"); int i = 0; char* Data = new char; while(!feof(f2)){ Data = new char; char ch = fgetc(f2); Data = ch; i++;
C++ Связать файл с потоком, не уничтожая его http://www.cyberforum.ru/cpp-beginners/thread698281.html
Подскажите пожалуйста: как связать файл с потоком не уничтожая его. Делаю так: ofstream nm; nm.open("myfile.txt"); Пробовал вот так - nm.open("myfile.txt",ios::app); но тогда невозможно записать строку в начало файла.
C++ Вычислить сумму ряда. Результат является приближенным значением функции exp в точке X while do 1) Дано вещественное число X и целое число N (> 0). Найти значение выражения + X + X2/(2!) + … + XN/(N!) (N! = 1•2•…•N). Полученное число является приближенным значением функции exp в точке X. aliev_ravil, я, конечно, и следующую вашу тему разделю. и перименую. но и карточку вам выдам за нарушение правил форума. подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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");
}
 
Текущее время: 07:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru