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

функция удаления и добавления элементов. что не так с програмой? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибки в коде, Borland C++ 3.1 http://www.cyberforum.ru/cpp-beginners/thread919072.html
Добрый день! Подскажите пожалуйста, в коде 2 ошибки, не понимаю как их исправить. #include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <time.h> const int size = 20; const int hor = 10, ver = size; void bucketSort(int);
C++ Как то сложно написана программа HelloWorld В Dev-C++ увидел пример... #include <iostream> int main(int argc, char** argv) { std::cout << "Hello world!\n"; return 0; } не могли бы разъяснить мне этот код) желательно написать тему, чтобы узнать поподробней о этом) http://www.cyberforum.ru/cpp-beginners/thread919066.html
C++ Второй способ отсева элементов из массива?
День добрый! Год назад сдал курсовую работу на тему "Отсев элементов из заданного массива". На C++. В этом году мне дали задание по практике сделать тоже самое, только двумя алгоритмами. Суть курсовой следующая: Цель данной работы – создать программу, которая удаляет в заданном массиве Х(n) «лишние» (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую...
C++ Передать объект fstream функции
Здравствуйте. Хочу, чтобы функция принимала в качестве аргумента объект fstream. Примерный вид программы: #include <fstream> using namespace std; void test(fstream a){ a.open("test2.txt"); a << "123" << endl; a.close(); }
C++ Генерация уникальных чисел http://www.cyberforum.ru/cpp-beginners/thread918979.html
Посоветуйте способ генерации УНИКАЛЬНЫХ чисел, чтобы для бинарного дерева подошли... Спасибо
C++ Аргументы по-умолчанию в указателе на функцию в классе В классе создал указатель на функцию void set_window_style(void(*style)(char, char)); Вот сам метод void Window::set_window_style(void(*style)(char ch1="null", char ch2="null")) подробнее

Показать сообщение отдельно
Pomogi
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 13

функция удаления и добавления элементов. что не так с програмой? - C++

07.07.2013, 12:01. Просмотров 283. Ответов 1
Метки (Все метки)

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
#include <iostream>
using namespace std;
struct node{
        double a;
        double b;
        node *next;};
    node *head= NULL;
    node *p, *tail;
void add(int n){
        int i;
        node *v;
        v=new node;
        cout<<"Vvedite pervoe drobnoe chislo :";
        cin>>v->a;
        cout<<"Vvedite vtoroe drobnoe chislo :";
        cin>>v->b;
        p=head;
        if(n==0){
            v->next=head;
            head=v;}
        else{
            for(i=1;i<n;i++) p=p->next;
                v->next=p->next;
                p->next=v;}};
    void del(int n){
        node *d;
        d=new node;
        p=head;
        for(int i=1;i<n;i++){p=p->next;
            d=p->next;}
            p->next=d->next;
        delete d;};
int main(){
    int i,n=0;
    double s1=0,s2=0,sa1,sa2,sa;
    char z;
    if(head==NULL){
        head=new node;
        cout<<"Vvedite pervoe drobnoe chislo :";
        cin>>head->a;
        cout<<"Vvedite vtoroe drobnoe chislo :";
        cin>>head->b;
        head->next=NULL;
        tail=head;}
    double s=0,pr=1;
    cout<<"Prodoljit?(y-da;n-net): ";
    cin>>z;
    if(z!='n'){
    while(z!='n'){
        p=new node;
        cout<<"Vvedite pervoe drobnoe chislo :";
        cin>>p->a;
        cout<<"Vvedite vtoroe drobnoe chislo :";
        cin>>p->b;
        tail->next=p;
        p->next=NULL;
        tail=p;
        cout<<"Prodoljit?(y-da;n-net): ";
        cin>>z;
        n++;}}
    cout<<"Udalit element?(y/n)";
    char f;
    cin>>f;
    if(f=='y'){
        int y;
        cout<<"Vvedite element kotoriy hotite udalit";
        cin>>y;
        if(y<=n){del(y);}
        if(y<0){
            cout<<"Takogo elementa ne suchestvuet"<<endl;}
        if (y>n)
        {cout<<"Takogo elementa ne suchestvuet"<<endl;}}
    cout<<"Hotite dobavit element? (y/n)";
    cin>>f;
    if(f=='y'){
        int y;
        cout<<"Vvedite element kotoriy hotite dobavit";
        cin>>y;
        if(y<=n){add(y);}
        if(y<0){
            cout<<"Takogo elementa ne suchestvuet"<<endl;}
        if (y>n)
        {cout<<"Takogo elementa ne suchestvuet"<<endl;}}
    p=head;
    for(i=0;i<=n;i++){
        s1=p->a+s1;
        s2=p->b+s2;
        p=p->next;}
    sa1=s1/(n+1);
    sa2=s2/(n+1);
    sa=(s1+s2)/(2*(n+1));
    cout<<"Srednee arifmeticheskoe poley first ="<<sa1<<endl;
    cout<<"Srednee arifmeticheskoe poley second ="<<sa2<<endl;
    cout<<"Srednee arifmeticheskoe vseh poley ="<<sa<<endl;
    p=head;
    for(i=0;i<=n;i++){
        s=s+p->a;
        pr=pr*p->b;
    p=p->next;}
    cout<<"Suma poley first: "<<s<<endl;
    cout<<"Proizvidenie poley second: "<<pr<<endl;
    return 0;}
при удалении элемента программа дает збой. но если после удаления елемента добавить новый на его место то програма работает. обясните пожалуста в чем проблема. и зачем создается новый елемент в функции удаления?
C++
1
2
3
        node *d;
        d=new node;
        p=head;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru