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

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

Войти
Регистрация
Восстановить пароль
 
 
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
#1

Расположить слова в последовательности - C++

25.09.2013, 05:46. Просмотров 897. Ответов 20
Метки нет (Все метки)

Какая здесь ошибка не могу понять( реализовать нужно в консольном приложении визуал студио 2008
Слова, содержащие сочетание ‘кот’, расположить в конце последовательности, сохраняя исходный порядок следования слов.

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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s1 = "";
    do
    {
        cout << "Напечатайте exit для выхода из программы" 
             << "Слово состоит " << s1 << "\nВведите слово: ";
        string s;
        cin >> s;
        s1 = "из парных";
        for(int i = 0; i < s.size(); i++)
        {
            int k = 0;
            for(int j = 0; s.size(); j++)
                if(s[i]==s[j])
                    k++;
                if(k==1)
                    s1 = "не из парных символов";
        }
    }while(s!="exit")
    return 0;
}
 Комментарий модератора 
Ошибки на самом деле две:
1) Пункт 5.16 Правил: Одна тема - один вопрос.
2) Приведенный код вообще не рядом с заданием.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 05:46     Расположить слова в последовательности
Посмотрите здесь:

Расположить в обратном порядке часть последовательности - C++
Дана последовательность натуральных чисел 1, 2, 3, ..., N (1 ≤ N ≤ 1000). Необходимо сначала расположить в обратном порядке часть этой...

Расположить символы последовательности в обратном порядке - C++
Почему-то совершенно не идёт с++,помогите,пожалуйста Есть 2 простенькие задачки,к которым нужно написать коды 1. Задан массив из k...

Наименьший элемент последовательности, расположить до первого отрицательного - C++
Найти наименьший элемент из элементов последовательности x1, x2, ..., x25, расположенных до первого отрицательного числа. Все отрицательные...

Расположить слова в алфавитном порядке - C++
Дана строка, состоящая из русских слов, разделенными пробелами. Вывести сроку, содержащую эти же слова, но расположенные в алфавитном...

Расположить слова в алфавитном порядке - C++
Доброго времени суток Вводим строку со словами, необходимо расположить эти слова в алфавитном порядке. Мои наработки /*Расположить...

Расположить слова порядке возрастания их длины - C++
Дана строка символов. Расположить их в порядке возрастания длины слова. Дайте хелпу ребятки;)

Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству - C++
Дана последовательность слов. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HedgehogLu
25.09.2013, 13:19
  #2

Не по теме:

может хотелось чтобы указанный исходник переделали под задание

Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
26.09.2013, 13:36  [ТС]     Расположить слова в последовательности #3
ЭТОТ КОД НЕ ПОД ЭТУ ЗАДАЧУ!!! я перепутал))
Слова, содержащие сочетание ‘кот’, расположить в конце последовательности, сохраняя исходный порядок следования слов. ЗАДАЧА ВСЕ ЕЩЕ АКТУАЛЬНА =) помогите в решении пожалуйста))
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 15:07     Расположить слова в последовательности #4
так что именно не получается?
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
27.09.2013, 13:13  [ТС]     Расположить слова в последовательности #5
Вообще не знаю как делать))
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
30.09.2013, 03:33  [ТС]     Расположить слова в последовательности #6
Это задание всё еще актуально))
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
30.09.2013, 06:12     Расположить слова в последовательности #7
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
Слова, содержащие сочетание ‘кот’, расположить в конце последовательности, сохраняя исходный порядок следования слов.
Вроде же все тривиально:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <iterator>
 
using namespace std;
 
bool no_cat(const string word) {
    return word.find("cat") == string::npos;
}
 
int main() {
    const char* words[] = {
      "cat", "fruit", "category", "skate",
      "allocator", "authentication", "apple", "orange"
    };
    stable_partition(begin(words), end(words), no_cat);
    copy(begin(words), end(words),
         ostream_iterator<const char*>(cout, "\n"));
}
fruit
skate
apple
orange
cat
category
allocator
authentication
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
30.09.2013, 14:25  [ТС]     Расположить слова в последовательности #8
а можно пожалуйста код под простенький С++ переделать и чтоб слова я вводил, допустим сообщение выходит, введите столько то слов, и я их ввожу, и потом формируется последовательность))) реализовать нужно в консольном приложении VS 2008
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
30.09.2013, 16:11     Расположить слова в последовательности #9
ну так выше все дано
Делаешь последовательность или массив. Потом проходя по последовательности или массиву с конца в начало для всех элементов в которых содержится слово "кот" сдвигаешь к концу до тех пор, пока не "упрешься" в элемент уже содержащий слово "кот", или достигнешь конца. И так пока не дойдешь до начала. В итоге и получится отсортировано согласно заданию.

Добавлено через 1 минуту
или проблема в полном не знании с++ и не умении писать на нем программы?
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
01.10.2013, 13:37  [ТС]     Расположить слова в последовательности #10
проблема в полном не знании с++ и не умении писать на нем программы
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
01.10.2013, 14:34     Расположить слова в последовательности #11
Может быть вот так понятней:
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
#include <iostream>
#include <stdio.h>
using namespace std;
 
struct StrList
{
    char *str;
    StrList *next;
};
 
void main()
{
    setlocale(LC_ALL,"Russian");
    char str[255];
    cout<<"Ввведите список слов. Чтобы окончить ввод списка введите '0'\n";
    StrList *list=NULL; 
    StrList *T; 
    while(true)
    {
        cin.getline(str, 254);
        if(str[0]=='0') break;
        if(!list)
        {
            list=new StrList;
            T=list;
        }
        else
        {
            T->next=new StrList;
            T=T->next;
        }
        
        T->str=new char[strlen(str)+1];
        strcpy(T->str,str);
        T->next=NULL;
    }
    //сформируем список слов с 'cat'
    StrList *list2=NULL;
    StrList *T2, *prev=NULL;
    T=list;
    while(T)
    {
        if(strstr(T->str,"cat"))
        {
            if(!list2)
            {
                list2=T;
                if(T==list) list=list->next; //чтоб не потерять начало списка
                else prev->next=T->next;
                T=T->next;
                list2->next=NULL;   
                T2=list2;
            }
            else
            {
                T2->next=T;
                if(T==list) list=list->next; //чтоб не потерять начало списка
                else prev->next=T->next;
                T=T->next;
                T2=T2->next;        
                T2->next=NULL;              
            }
            continue;
        }
        prev=T;
        T=T->next;
    }
    T=list;
    cout<<"измененный список: \n";
    while(T)
    {
        cout<<T->str<<"\n";
        T=T->next;
    }
    T=list2;
    while(T)
    {
        cout<<T->str<<"\n";
        T=T->next;
    }
    cin>>str;
}
Добавлено через 1 минуту
Выхватываем из общего списка слова с котом в той последовательности, в к-рой они идут и добавляем их в др. список
Затем просто выводим список без котов, а за ним список с котами
HedgehogLu
01.10.2013, 14:59
  #12

Не по теме:

Algoritmer, Ох и любишь ты списки и деревья

Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 438
01.10.2013, 16:50  [ТС]     Расположить слова в последовательности #13
воу воу как сложно то всё, а как нибудь попроще с помощью обычных циклов нельзя сделать???))
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
01.10.2013, 17:34     Расположить слова в последовательности #14

Не по теме:

Alexandr1966, Если же вы не знаете с++ вообще, тогда не следует в тему подкидывать исходник чужой контрольной.
И мой вам совет, попытайтесь хоть немного понять язык программирования или готовьтесь в дальнейшем оплачивать работу, т.к. задачи посложнее мало кто согласиться решать бесплатно


Учитывая что готовый вариант у вас уже есть кину код ну наверное проще уже некуда

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
#include <iostream>
#include <cstdio>
#include<string.h>
int main()
{
    using namespace std;
    char s[10][100];
    for (int i=0;i<10;i++)
    {
        cout<<"vvedite "<<i<<"-e slovo:";
        cin>>s[i];
    }
    for (int i=8;i>=0;i--)
    {
        if (strstr(s[i],"cat")) 
        {
            int j=i;
            while((j<9)&&(!strstr(s[j+1],"cat")))
            {
                char tmp[100];
                strcpy(tmp,s[j]);
                strcpy(s[j],s[j+1]);
                strcpy(s[j+1],tmp);
                j++;
            }
        }
    }
    cout<<"Otsortirovannnie slova"<<endl;
    for (int i=0;i<10;i++)
    {
        cout<<s[i]<<endl;
    }            
    cin>>s[0];
    return 0;
}
как избавиться от некоторых ограничений оставляю все же додумать вам
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 17:42     Расположить слова в последовательности
Еще ссылки по теме:

Расположить элементы последовательности, стоящие на четных местах в порядке уменьшения - C++
Дана последовательность действительных чисел а1, а2, ..., a22. Расположить элементы последовательности, стоящие на четных местах в порядке...

Из заданной последовательности слов удалить слова,содержащие слова - C++
Из заданной последовательности слов удалить слова, содержащие числа.

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

Расположить слова строки в порядке, обратном исходному. - C++
Здравствуйте,помогите пожалуйста. Задание: Расположить слова строки в порядке, обратном исходному.

Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз - C++
Есть задача, никак не могу разобраться, помогите пожалуйста реализовать)) Определить, имеются ли в последовательности слова, в которых...


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

Или воспользуйтесь поиском по форуму:
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
01.10.2013, 17:42     Расположить слова в последовательности #15
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
с помощью обычных циклов нельзя сделать???
Разве while это не обычный цикл. Ну можно написать через фор:
C++
1
for(;T;T=T->next)
примерно так
Yandex
Объявления
01.10.2013, 17:42     Расположить слова в последовательности
Ответ Создать тему
Опции темы

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