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

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

Восстановить пароль Регистрация
 
Aerarian
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 78
30.07.2016, 14:27     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #1
Назовем слово итальянским, если оно заканчивается на օ или 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
magirus
Супер-модератор
 Аватар для magirus
25477 / 14018 / 740
Регистрация: 15.09.2009
Сообщений: 59,697
Записей в блоге: 61
30.07.2016, 14:29     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #2
и чо? ("чо" кстати слово итальянское)
_liv_
83 / 83 / 28
Регистрация: 07.10.2015
Сообщений: 239
30.07.2016, 14:42     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #3
magirus, не-а, итальянским будет cho
shilko2013
 Аватар для shilko2013
237 / 214 / 115
Регистрация: 02.04.2016
Сообщений: 812
Завершенные тесты: 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
 Аватар для shilko2013
237 / 214 / 115
Регистрация: 02.04.2016
Сообщений: 812
Завершенные тесты: 1
30.07.2016, 15:56     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #6
Aerarian, Я так и решаю
volvo
Супер-модератор
 Аватар для volvo
21687 / 14160 / 3939
Регистрация: 22.10.2011
Сообщений: 25,023
Записей в блоге: 2
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
 Аватар для shilko2013
237 / 214 / 115
Регистрация: 02.04.2016
Сообщений: 812
Завершенные тесты: 1
30.07.2016, 16:11     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #8
volvo, А у вас не два?)
volvo
Супер-модератор
 Аватар для volvo
21687 / 14160 / 3939
Регистрация: 22.10.2011
Сообщений: 25,023
Записей в блоге: 2
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
 Аватар для shilko2013
237 / 214 / 115
Регистрация: 02.04.2016
Сообщений: 812
Завершенные тесты: 1
30.07.2016, 16:25     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #10

Не по теме:

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



Добавлено через 20 секунд
И мой код рабочий, так что все норм
HelicopterK52
633 / 176 / 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++ Вывести слова сообщения начинающиеся и оканчивающиеся на одну и ту же букву
Вывести только те слова из строки, которые начинаются и оканчиваются на заданную букву C++

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

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

Не по теме:

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

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

Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru