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

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

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

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

30.07.2016, 14:27. Просмотров 296. Ответов 11
Метки нет (Все метки)

Назовем слово итальянским, если оно заканчивается на օ или a. Причем в первом случае оно будет можского рода, а во втором - женского. Задан список слов. Требуется выделить из него итальянские слова и указать их род.
Вход состоит из количества слов и самих слов. Выход состоит из количества итальянских слов и самих итальянских слов вместе со своими родами.


10
banana
bambino
peso
why
apple
mars
gap
hello
page
mage

5
ab
cd
ef
gh
jk


4
banana - f.
bambino - m.
peso - m.
hello - m.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2016, 14:27     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род
Посмотрите здесь:

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

Вывести слова сообщения начинающиеся и оканчивающиеся на одну и ту же букву - C++
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинани, в конце которого...

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
magirus
Супер-модератор
Эксперт по компьютерным сетямЭксперт Windows
26338 / 14640 / 820
Регистрация: 15.09.2009
Сообщений: 63,414
Записей в блоге: 69
30.07.2016, 14:29     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #2
и чо? ("чо" кстати слово итальянское)
_liv_
212 / 212 / 81
Регистрация: 07.10.2015
Сообщений: 594
Завершенные тесты: 1
30.07.2016, 14:42     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #3
magirus, не-а, итальянским будет cho
shilko2013
240 / 217 / 116
Регистрация: 02.04.2016
Сообщений: 823
Завершенные тесты: 1
30.07.2016, 14:50     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #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
#include<iostream>
#include<vector>
using namespace std;
//using C++11 Standard
int main() {
    int n;
    cin >> n;
    vector<string> m;
    vector<string> f;
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;
        if (s[s.size() - 1] == 'o')
            m.push_back(s);
        else if (s[s.size() - 1] == 'a')
            f.push_back(s);
    }
    cout << m.size() + f.size() << endl;
    for (const auto& e : f)
        cout << e << " - f." << endl;
    for (const auto& e : m)
        cout << e << " - m." << endl;
}
Aerarian
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 78
30.07.2016, 15:39  [ТС]     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #5
а с помощью #include <string> можно решить?
shilko2013
240 / 217 / 116
Регистрация: 02.04.2016
Сообщений: 823
Завершенные тесты: 1
30.07.2016, 15:56     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #6
Aerarian, Я так и решаю
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22846 / 14988 / 4308
Регистрация: 22.10.2011
Сообщений: 26,564
Записей в блоге: 4
30.07.2016, 16:08     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #7
shilko2013, на кой тут два разных вектора-то?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<vector>
using namespace std;
//using C++11 Standard
int main()
{
    int n;
    cin >> n;
 
    vector<string> v[2];
    char last[2] = {'a', 'o'};
    for (int i = 0; i < n; ++i)
    {
        string s;
        cin >> s;
        for(int i = 0; i < 2; i++) if (s.back() == last[i]) v[i].push_back(s);
    }
    cout << v[0].size() + v[1].size() << endl;
    for (int i = 0; i < 2; i++)
        for (const auto& e : v[i])
            cout << e << " - " << (i ? "m" : "f") << "." << endl;
}
не проще будет?
shilko2013
240 / 217 / 116
Регистрация: 02.04.2016
Сообщений: 823
Завершенные тесты: 1
30.07.2016, 16:11     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #8
volvo, А у вас не два?)
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22846 / 14988 / 4308
Регистрация: 22.10.2011
Сообщений: 26,564
Записей в блоге: 4
30.07.2016, 16:16     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #9
Нет, у меня не два разных, у меня массив. С массивом задача решается проще. Видишь, я уже от if-а с else избавился. Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<vector>
using namespace std;
//using C++11 Standard
int main()
{
    int n;
    cin >> n;
 
    vector<string> v[2];
    char last[2] = {'a', 'o'};
    for (int i = 0; i < n; ++i)
    {
        string s;
        cin >> s;
        for(int i = 0; i < 2; i++) if (s.back() == last[i]) v[i].push_back(s + " - " + (i ? "m" : "f") + ".");
    }
    v[0].insert(v[0].end(), v[1].begin(), v[1].end());
    cout << v[0].size() << endl;
    for (const auto& e : v[0])
        cout << e << endl;
}
я и от второго цикла на выводе избавлюсь...

Не по теме:

Написание теста и получение в собственном тесте 100% не делает из тебя человека, знающего С++, запомни это.

shilko2013
240 / 217 / 116
Регистрация: 02.04.2016
Сообщений: 823
Завершенные тесты: 1
30.07.2016, 16:25     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #10

Не по теме:

volvo, Я прошел его, только чтобы посмотреть нет ли ошибок и будут ли BB коды отображаться в вопросах, а то нет предварительного просмотра.



Добавлено через 20 секунд
И мой код рабочий, так что все норм
HelicopterK52
658 / 201 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
30.07.2016, 18:03     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #11

Не по теме:

Цитата Сообщение от shilko2013 Посмотреть сообщение
//using C++11 Standard
написал человек и начал юзать push_back


Цитата Сообщение от shilko2013 Посмотреть сообщение
И мой код рабочий, так что все норм
Смотря что считать рабочим кодом.
volvo, почему бы не сделать еще один массив с 'f', 'm'?
И зачем два вектора?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2016, 20:13     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род
Еще ссылки по теме:

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

Вывести слова, которые содержат заданную букву (исправить код) - C++
Задание на массив. Нужно вывести слова, которые содержат заданную букву. Слова задаются произвольно через пробел, признак конца строки -...

Указать те слова, которые содержат хотя бы одну букву k - C++
Помогите решить задачу что-бы зачёт получить Дана строка. Указать те слова, которые содержат хотя бы одну букву k.

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


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

Или воспользуйтесь поиском по форуму:
Ferrari F1
30.07.2016, 20:13     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род
  #12

Не по теме:

HelicopterK52, volvo,
Ээй-эй, вы зачем парня опускаете?

Yandex
Объявления
30.07.2016, 20:13     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род
Ответ Создать тему
Опции темы

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