Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78

Напечатать те слова, которые встречаются в каждом из двух заданных предложений

23.04.2014, 15:55. Показов 6276. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напечатать те слова, которые встречаются в каждом из двух заданных предложений.

Помогите. Зарание спасибо!
Погуглил, много тем,но никто не ответил!

Добавлено через 10 минут
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
#include <iostream>
#include <ctime>
#include <iomanip>
#include <vector>
using namespace std;
typedef vector< vector<int> > T;
ostream &operator<<(ostream &output,const T &mass)
{
     for(size_t i = 0;i<mass.size();++i){
        for(size_t j = 0;j<mass.size();++j)
               output<<setw(5)<<mass[j];
      output<<"\n\n";
    }
     return output;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand((unsigned)time(0));
    unsigned int row,col;
    do{
      cout<<"Enter rows > 0"<<endl;
      cin>>row;
    }while(row <= 0);
    do{
      cout<<"Enter col > 0"<<endl;
      cin>>col;
    }while(col <= 0);
    T mass(row, vector<int>(col));
    for(size_t i = 0;i < row;++i){
      for(size_t j = 0;j < col;++j)
                  mass[j] = rand()%10;
    }
    cout<<mass;
    
    return 0;
}
Как это переделатьна простой язык, т.к. мы такого не проходили,даи я хочу понять.

Добавлено через 1 час 32 минуты
Есть мысли?

Добавлено через 18 минут
Есть еще это вариант овтета, но...\\\
Нужно на простом смерном языке. Зарание спасибо

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using namespace std;
 
int main()
{
     string s1,s2;
     getline( getline( cin,s1),s2);
     stringstream ss(s1);
     set< string>set1(( istream_iterator< string>(ss)), istream_iterator< string>());
     ss.clear();
     ss.str(s2);
     set<string>set2(( istream_iterator< string>(ss)), istream_iterator< string>());
     set_intersection(set1.begin(),set1.end(),set2.begin(),set2.end(), ostream_iterator<string>( cout, "\n"));
     getch();
     return 0;
}
Добавлено через 3 минуты
Сделал, но как избавиться от странных повторов строки. Где ошибка...

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
#include <iostream>
#include <conio.h>
#include <locale>
using namespace std;
 
int main()
{   
    char *tempSlova1 = new char[20];
    char *tempSlova2 = new char[20]; 
    char *myString1 = new char[100];
    char *myString2 = new char[100];
    
    cout << "1 stroka: ";
    
    
    fflush(stdin);
    gets(myString1);
    cout << "2 stroka: ";
    gets(myString2);
 
    cout << "slova 1stroki:" << endl;
 
    for(int i = 0, k =0 ; i <= strlen(myString1); i++, k ++)
    {{   
        if(myString1[i] == ' '|| myString1[i] == '\0')
        {   
            tempSlova1[k] = '\0';
            puts(tempSlova1);
            
            k = -1;
            
        }
        else
            tempSlova1[k] = myString1[i];
             
        
    }
    
    cout << "2stroki:" << endl; 
    for(int i = 0, k =0 ; i <= strlen(myString2); i++, k ++)
 
    {   
        if(myString2[i] == ' '|| myString2[i] == '\0')
        {   
            tempSlova2[k] = '\0';
            puts(tempSlova2);
            
            k = -1;
           
        }
        else
            tempSlova2[k] = myString2[i];
       
    }
    
}
    
    getch();
    
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2014, 15:55
Ответы с готовыми решениями:

Напечатать те слова, которые встречаются в каждом из двух заданных предложений
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; using namespace std; int main() { char *tempSlova1 = new...

Напечатать множество слов,которые встречаются в каждом из двух заданных предложений.
Здравствуйте! Существует такая задачка:Напечатать множество слов,которые встречаются в каждом из двух заданных предложений. Я понимаю...

Найти множество всех слов, которые встречаются в каждом из двух заданных предложений
Примерно в таком виде: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { ...

15
15 / 15 / 6
Регистрация: 28.11.2013
Сообщений: 50
23.04.2014, 16:16
Цитата Сообщение от DjSwatPro Посмотреть сообщение
Сделал, но как избавиться от странных повторов строки. Где ошибка...
Нужно убрать одну скобку в 24 строке и в 56
0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
25.04.2014, 19:17  [ТС]
Спасибо. Но надо как то терь замутить, чтоб те слова, которые он разделил, сравнить и оставить одинаковые. блин, быдло-код.

Добавлено через 1 час 11 минут
Если добавить условие и в циклах добавить новые перменные, то как бы работает, но выдает не те символы.

Добавлено через 3 часа 56 минут
мммм

Добавлено через 8 часов 12 минут
Нужна помощь

Добавлено через 7 часов 55 минут
хелп

Добавлено через 4 часа 43 минуты
хелп

Добавлено через 18 часов 27 минут
хелп

Добавлено через 3 часа 23 минуты
хелп

Добавлено через 1 час 11 минут
че такая сложная задача?

Добавлено через 1 час 51 минуту
мдааааааааааа
0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
30.04.2014, 05:12  [ТС]
помогите сравнить две строки и вывести ток одинаковые слова.

Добавлено через 22 часа 49 минут
хелп

Добавлено через 12 часов 54 минуты
ааааааааааааа
0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
01.05.2014, 09:35  [ТС]
ппппппппппппппппппппппппп
0
01.05.2014, 10:05

Не по теме:

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
#include <iostream>
#include <string>
#include <set>
#include <sstream>
#include <vector>
using namespace std;
int main(){
    string str1, str2;
    set<string> words;
    vector <string> vec;
    getline(cin, str1);
    cin.sync();
    getline(cin, str2);
    cin.sync();
    stringstream ss(str1);
 
    while(ss >> str1){
        words.insert(str1);
    }
    stringstream ss2(str2);
    while(ss2 >> str2){
        vec.push_back(str2);
    }
    for (string &s: vec) {
        if(words.count(s))cout << s <<endl;
    }
    return 0;
}

0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
01.05.2014, 10:34  [ТС]
как бы понимаю, что робит и норм, но надо на простой смертный язык. т.к. такое мы еще не проходили
0
01.05.2014, 11:21

Не по теме:

Цитата Сообщение от DjSwatPro Посмотреть сообщение
на простой смертный
ну тогда и пишите на паскакале

0
 Аватар для Rifle
30 / 30 / 13
Регистрация: 15.11.2012
Сообщений: 93
01.05.2014, 13:31
Лучший ответ Сообщение было отмечено DjSwatPro как решение

Решение

Сделал, как смог. Идея проста: с помощью циклов пробегаемся по первой строке и извлекаем оттуда слово, а потом сравниваем его со всеми словами из второй строки. Может быть не образец кодинга, но вроде все, что нужно, делает.

Кликните здесь для просмотра всего текста
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
#include <iostream>
using std::cout;
using std::endl;
#include <cctype>
 
 
int main(int argc, char * argv[])
    {
    const char * str1 = "this is a first C-style string";
    const char * str2 = "this is a second string";
    char buffer1[50];
    char buffer2[50];
    int count = 0;
    while (*str1)
        {
        int i = 0;
        buffer1[i] = '\0';
        while (isalpha(*str1))
            {
            buffer1[i] = *str1;
            str1++;
            i++;
            }
        buffer1[i] = '\0';
        i = 0;
        const char * temp = str2;
        while (*str2)
            {
            buffer2[i] = '\0';
            while (isalpha(*str2))
                {
                buffer2[i] = *str2;
                str2++;
                i++;
                }
            buffer2[i] = '\0';
            if (strcmp(buffer1, buffer2) == 0)
                cout << buffer1 << endl;
            str2++;
            i = 0;
            }
        str1++;
        str2 = temp;
        }
    return 0;
    }
1
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
01.05.2014, 16:43  [ТС]
Спасибо. Мне именно так и нужно было. А то некоторые кодят сразу профессионально, а мы такое не изучали. и разобратсья хочется. спасибо еще раз
0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
04.05.2014, 20:12  [ТС]
Эм. Кажется прокол. слово "секнод" выводится, хотя в 1 строке нету
0
 Аватар для Rifle
30 / 30 / 13
Регистрация: 15.11.2012
Сообщений: 93
05.05.2014, 05:08
У меня не выводится.
Мой вывод:
Кликните здесь для просмотра всего текста
this
is
a
string

Дайте код, который компилируете, посмотрим.
0
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
05.05.2014, 08:31  [ТС]
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
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
using std::cout;
using std::endl;
#include <cctype>
 
 
int main(int argc, char * argv[])
    {
    const char * str1 = "this is a first";
    const char * str2 = "this is a second";
    char buffer1[50];
    char buffer2[50];
    int count = 0;
    while (*str1)
        {
        int i = 0;
        buffer1[i] = '\0';
        while (isalpha(*str1))
            {
            buffer1[i] = *str1;
            str1++;
            i++;
            }
        buffer1[i] = '\0';
        i = 0;
        const char * temp = str2;
        while (*str2)
            {
            buffer2[i] = '\0';
            while (isalpha(*str2))
                {
                buffer2[i] = *str2;
                str2++;
                i++;
                }
            buffer2[i] = '\0';
            if (strcmp(buffer1, buffer2) == 0)
                cout << buffer1 << endl;
            str2++;
            i = 0;
            }
        str1++;
        str2 = temp;
        }
getch();
return 0;
    }
0
 Аватар для Rifle
30 / 30 / 13
Регистрация: 15.11.2012
Сообщений: 93
05.05.2014, 09:30
У меня по-прежнему выводит все нормально, но есть предположение в чем дело:
в конце главного цикла вместо этого:
C++
1
2
str1++;
str2 = temp;
сделайте вот так:
C++
1
2
3
str2 = temp;
if (*str1)
    str1++;
Попробуйте, отпишите.
1
0 / 0 / 1
Регистрация: 10.11.2012
Сообщений: 78
06.05.2014, 07:00  [ТС]
спасибо. работает!
0
0 / 0 / 0
Регистрация: 25.02.2018
Сообщений: 1
06.05.2018, 11:41
Вот мой вариант, не могу понять почему сравнивает 1 слово 1 предложения со всеми словами, но ко 2 слову не переходит, помогите:

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
#include <iostream>
#include <locale>
#include <math.h>
#include <string.h>
using namespace std;
main()
{
    setlocale (LC_ALL, "RUSSIAN");
    
    // Объявление переменных
    
    char a[200], b[200], c[200], *pa, *pb, sign[8]=" .,?!;:";
    int x=0, i=0, j, len;
        
    // Ввод данных
    
    cout << "Введите первое предложение: " << '\n';
    gets(a);
    cout << "Введите второе предложение: " << '\n';
    gets(b);
        
    // Решение и вывод результатов
    
    pa=strtok(a, sign);
    while (pa!=NULL)
    {
        pb=strtok(b, sign);
        while (pb!=NULL)
        {
            cout << "Сравниваются:" << '\n';
            puts(pa);
            puts(pb);                       
            if (!strcmp(pb,pa))
            {
                x=1;
                len=strlen(pa);
                for (j=0; j<len; j++)
                {
                    c[i]=pa[j];
                    i++;    
                }
                c[i]=' ';
                i++;
            }   
            pb = strtok(NULL, sign);
        }
        pa = strtok(NULL, sign);        
    }
    
    // Вывод результатов
    
    if (x==1)
    {
        cout << "Слова встречающиеся в обоих предложениях:" << '\n';
        puts(c);
    }
    else cout << "В первом предложении нет слов встречающихся во втором предложении!!!" << '\n';
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2018, 11:41
Помогаю со студенческими работами здесь

Напечатать те слова, которые встречаются в каждом из двух заданных предложений.
Напечатать те слова, которые встречаются в каждом из двух заданных предложений. Помогите пожалуйста)

Напечатать те слова, которые встречаются в каждом из двух заданных предложений
Никак не получается написать программу. &quot;Напечатать те слова, которые встречаются в каждом из двух заданных предложений&quot; ...

Напечатать те слова, которые встречаются в каждом из двух заданных предложений
4. Напечатать те слова, которые встречаются в каждом из двух заданных предложений

(есть наработки)Напечатать те слова, которые встречаются в каждом из двух заданных предложений
Не могу найти ошибку в алгоритме,помогите. &quot;Напечатать те слова, которые встречаются в каждом из двух заданных предложений&quot; ...

Вывести слова, которые встречаются в каждом из двух заданных предложений
надо вывести те слова, которые встречаются в каждом из двух заданных предложений


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru