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

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

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

Удалить записи о тех блюдах, перед которыми находится блюдо страны Испания - C++

17.02.2014, 19:21. Просмотров 293. Ответов 2
Метки нет (Все метки)

Здравствуйте! меня интересует как реализовать такое задание: Удалить записи о тех блюдах, перед которыми находится блюдо страны Испания!
Я написал "что-то" но это явно неправильно! Я так понимаю, что мой код удаляет именно тот элемент списка, где страна Испания, а нужно удалять следующий за ним! Проверьте пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void country(TStud * Start){
    TStud *pp, *wp;
 
    wp=Start;
    pp=NULL;
    while(wp!=NULL && wp->strana=="Испания"){
        pp=wp;
        wp=wp->next;
    }
    if(wp==NULL || wp->strana!="Испания")
        return;
    if(pp==NULL)
        Start=wp->next;
    else
        pp->next=wp->next;
    delete wp;
}
Добавлено через 42 минуты
дайте хоть правильное направление

Добавлено через 1 час 6 минут
подскажите ход решения
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить записи о тех блюдах, перед которыми находится блюдо страны Испания (C++):

Удалить из списка элементы перед которыми находится элемент со значением 55 - C++
Создать линейный однонаправленный список из вещественных чисел.удалить из списка элемент перед каждым элементом со значением 55. Напишите...

Распечатать все буквы, непосредственно перед которыми находится буква С - C++
Дан массив символов S1,...,Sn. Распечатать все буквы, непосредственно перед которыми находится буква С. . n – число в диапазоне от 1 до...

Напечатать заданный текст с удалением из него всех букв b, непосредственно перед которыми находится буква с - C++
Помогите пожалуйста с задачкой на С++ Напечатать заданный текст с удалением из него всех букв b, непосредственно перед которыми...

Вывести на экран слова перед которыми стоят запятая и пробел. - C++
Вывести на экран слова перед которыми стоят запятая и пробел. Не могу понять как ее реализовать чайниг в этом деле) Добавлено через 6...

Удалить из текста все буквы b, непосредственно перед которыми находится буква с - Delphi
Напечатайте заданный непустой текст, удалив из него все буквы b, непосредственно перед которыми находится буква с.

Распечатать те слова перед которыми в последовательности находится меньшее слово - C#
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 малых латинских букв, между словами - запятая, за...

2
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
17.02.2014, 21:02 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
накидал что-то, мб поможет - удаляет только 1 элемент стоящий перед "Spain"
сделал больше для себя, так что особо не спрашивай, списки сегодня 1ый раз почитал
ну и кстати я там память не освободил в функции del , только сейчас заметил, сейчас поправлю
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
#include <iostream>
#include <string.h>
using namespace std;
 
class test
{
private:
    struct node{
    string country;
    int index;
    node* next;
    };
public:
    node* head;
 
    test()
        {
        head=0;
        }
 
    ~test()
        {
            node* begin=head;
            while(head!=0)
            {
            begin=head;
            head=head->next;
            delete begin;
            }
        }
 
    void add(const string &c)
    {
 
    node* temp=new node;
    temp->country=c;
        if (head!=0){
        temp->next=head;
        temp->index=head->index+1;
        }
        else
        {
        temp->index=1;
        temp->next=0;
        }
    head=temp;
    }
 
    void show ()
    {
    node* begin=head;
        while(head!=0)
        {
        cout<<"index:"<<head->index<<endl;
        cout<<"country:"<<head->country<<endl<<endl;
        head=head->next;
        }
    head=begin;
    }
 
    void del(string str = "Spain")
    {
    node* begin=head;
        while(head!=0)
        {
            if(head->country==str)
            {
            node* sp=head;
            head=head->next;
            sp->next=head->next;
            delete head;
            head=sp;
            break;
            }
        head=head->next;
        }
    head=begin;
    }
};
 
int main()
{
test a;
int x;
cout<<"enter size of list:";
cin>>x;
string str;
for(int i=0;i<x;i++)
    {
    cout<<"\nEnter country:";
    cin>>str;
    a.add(str);
    }
a.show();
a.del();
a.show();
return 0;
}
Добавлено через 4 минуты

Не по теме:

сейчас попробую наколдовать тебе двусвязный список если жена не придёт))

1
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
17.02.2014, 21:08  [ТС] #3
Добавлено через 4 минуты

Не по теме:

сейчас попробую наколдовать тебе двусвязный список если жена не придёт))



да не надо))) спасибо))) сейчас буду разбираться здесь, поскольку двусвязный мы еще не учили))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 21:08
Привет! Вот еще темы с ответами:

В текстовом файле удалить все символы "+" и "-", а так же все буквы "б" перед которыми находится буква "с". - Turbo Pascal
Дан текстовый файл. В нем удалить все символы &quot;+&quot; и &quot;-&quot;, а так же все буквы &quot;б&quot; перед которыми находится буква &quot;с&quot;. program...

Напечатайте заданный непустой текст, удалив из него все буквы b, непосредственно перед которыми находится буква с - Free Pascal
Напечатайте заданный непустой текст, удалив из него все буквы b, непосредственно перед которыми находится буква с.

Напечатайте заданный непустой текст, удалив из него все буквы b, непосредственно перед которыми находится буква с. - Turbo Pascal
столкнулся с задачкой, а именно: Напечатайте заданный непустой текст, удалив из него все буквы b, непосредственно перед которыми...

Удалить из текста все буквы ‘b’, непосредственно перед которыми идет буква ’c’. - Pascal ABC
Удалить из текста все буквы ‘b’, непосредственно перед которыми идет буква ’c’.


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

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

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