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

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

Войти
Регистрация
Восстановить пароль
 
ендрю
0 / 0 / 1
Регистрация: 09.02.2013
Сообщений: 17
#1

Поиск повторяющихся слов - C++

11.09.2014, 23:53. Просмотров 718. Ответов 3
Метки нет (Все метки)

Напишите программу, в которую сначала вводится набор пар, состоящих из имени и значения, например Joe 17 и Barbara 22. Для каждой пары занесите имя в вектор names, а число — в вектор scores (в соответствующие позиции, так что если names [7] =="Joe", то scores [7] ==17). Прекратите ввод, введя строку No more (т.е. следующая попытка ввести целое число завершится ошибкой). Убедитесь, что каждое имя уникально, и выведите сообщение об ошибке, если имя введено дважды. Выведите на печать все пары (имя, баллы) по одной в строке.

Добавлено через 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
#include<iostream>
#include<string>
#include<vector>
#include<algorithm> 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    vector<int>marks;
    vector<string>names; 
    int mark;
    string name;
    cout<<"Введите имя и оценку студента:\n";
 
    while(cin>>name>>mark)
    {
        if(name=="no more") 
        {}
        else
            {
              names.push_back(name);
              marks.push_back(mark);
            }
    }
              sort(names.begin(),names.end()); 
               for(int k=0; k< names.size(); ++k)
              if (k==0 ||  names[k-1]!= names[k])
              {
              cout<<names[k]<<" "<<marks[k]<<" \n";
              }
              else
                  cout<<"Ошибка\n";
    
}
Добавлено через 2 минуты
После сортировки имя и оценка не совпадают. Как по другому определить повторяющиеся имена?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2014, 23:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск повторяющихся слов (C++):

Поиск повторяющихся слов через вектор - C++
Здравствуйте. При вводе текста в переменную string current должно только что написанное слово должно попадать в вектор previous, но это...

Поиск повторяющихся слов в тексте (доработка кода) - C++
Дан текст, содержащий n строк. Для каждого слова указать, сколько раз оно встречается в тексте. Я тут кое-что попробовала сделать (с++),...

Запись всех повторяющихся слов в новый массив слов - C++
компилируется без ошибок, запускаю консоль после 13 строчки, а именно ввода количества слов, программа где-то вылетает, думал на 15 что-то...

Количество повторяющихся слов - C++
Всем доброго времени суток! Дано задание подсчитать количество слов в тексте и их длину, а также количество повторяющихся слов. Первые два...

Выявление повторяющихся слов! - C++
// 3.5.1.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &quot;DarkJoker.h&quot; int main() ...

Удаление повторяющихся слов из стоки на C - C++
Здравствуйте. Помогите пожалуйста реализовать задачу: Дана строка. Группа символов разделленая одним или несколькими пробелами считается...

3
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
12.09.2014, 00:28 #2
Цитата Сообщение от ендрю Посмотреть сообщение
После сортировки имя и оценка не совпадают.
Так,а что вы хотели?
Можете использовать другие контейнеры,так будет проще.
0
ендрю
0 / 0 / 1
Регистрация: 09.02.2013
Сообщений: 17
12.09.2014, 00:38  [ТС] #3
Цитата Сообщение от S_el Посмотреть сообщение
Можете использовать другие контейнеры,так будет проще.
Чесно говоря, я не понял.
Есть какой -то способ определить повторяющиеся слова без сортировки? Или с сортировкой, но чтобы имена соответствовали оценкам?
0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
12.09.2014, 01:10 #4
ендрю, Способов много.
Проверяйте такой вариант:

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
#include<iostream>
#include<string>
#include<vector>
#include<algorithm> 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    vector<int>marks;
    vector<string>names; 
    int mark;
    string name;
    
    cout<<"Введите имя и оценку студента:\n";
 
    while(cin>>name>>mark)
    {
        if(name=="no more") 
        {break;}
        else
            {
              names.push_back(name);
              marks.push_back(mark);
            }
    }
    cout<<endl;
    size_t sizenames = names.size();
    
    names.resize(std::unique(names.begin(), names.end()) - names.begin());
    
    vector<int>::const_iterator z=marks.begin();
    if(sizenames==names.size())
        for(vector<string>::const_iterator t=names.begin();t!=names.end();++t,++z)
            cout<<*t<<" "<<*z<<" \n";
    else cout<<"Ошибка\n";
    return 0;
}
0
12.09.2014, 01:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2014, 01:10
Привет! Вот еще темы с ответами:

Программа для поиска не повторяющихся слов - C++
Всем привет. Помогите написать функцию которая бы записывала из 1го массива во 2ой не повторяющиеся элементы. Прим.:1ый массив:собака...

Удаление повторяющихся соседних слов из текста - C++
Помогите, пожалуйста, написать прогу: вводит строку (текст) из файла, удаляет в ней повторяющиеся рядом стоящие слова, и выводит...

Как реализовать удаление повторяющихся слов? - C++
Задачей является написание программы, которая: 1) Считывает вводимый в консоль текст до точки. 2) Выкидывает все символы, кроме...

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


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

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

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