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

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

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

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

30.07.2016, 14:27. Просмотров 316. Ответов 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
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2016, 14:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род (C++):

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

Найти слова, начинающиеся и оканчивающиеся на одну и ту же букву; слова, содержащие букву, встречающуюся N раз - C++
Пусть задано множество строк. Вывести: а) слова, начинающиеся и оканчивающиеся на одну и ту же букву б) слова, которые содержат букву,...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
magirus
Супер-модератор
Эксперт по компьютерным сетямЭксперт Windows
26608 / 14922 / 857
Регистрация: 15.09.2009
Сообщений: 64,844
Записей в блоге: 70
30.07.2016, 14:29 #2
и чо? ("чо" кстати слово итальянское)
0
_liv_
212 / 212 / 81
Регистрация: 07.10.2015
Сообщений: 596
Завершенные тесты: 1
30.07.2016, 14:42 #3
magirus, не-а, итальянским будет cho
0
shilko2013
240 / 217 / 117
Регистрация: 02.04.2016
Сообщений: 827
Завершенные тесты: 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;
}
1
Aerarian
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 80
30.07.2016, 15:39  [ТС] #5
а с помощью #include <string> можно решить?
0
shilko2013
240 / 217 / 117
Регистрация: 02.04.2016
Сообщений: 827
Завершенные тесты: 1
30.07.2016, 15:56 #6
Aerarian, Я так и решаю
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23554 / 15548 / 4594
Регистрация: 22.10.2011
Сообщений: 27,572
Записей в блоге: 5
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;
}
не проще будет?
0
shilko2013
240 / 217 / 117
Регистрация: 02.04.2016
Сообщений: 827
Завершенные тесты: 1
30.07.2016, 16:11 #8
volvo, А у вас не два?)
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23554 / 15548 / 4594
Регистрация: 22.10.2011
Сообщений: 27,572
Записей в блоге: 5
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% не делает из тебя человека, знающего С++, запомни это.

0
shilko2013
240 / 217 / 117
Регистрация: 02.04.2016
Сообщений: 827
Завершенные тесты: 1
30.07.2016, 16:25 #10

Не по теме:

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



Добавлено через 20 секунд
И мой код рабочий, так что все норм
0
HelicopterK52
660 / 203 / 28
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
30.07.2016, 18:03 #11

Не по теме:

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


Цитата Сообщение от shilko2013 Посмотреть сообщение
И мой код рабочий, так что все норм
Смотря что считать рабочим кодом.
volvo, почему бы не сделать еще один массив с 'f', 'm'?
И зачем два вектора?
0
Ferrari F1
30.07.2016, 20:13     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род
  #12

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2016, 20:13
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.07.2016, 20:13
Ответ Создать тему
Опции темы

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