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

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

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

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

30.07.2016, 14:27. Просмотров 253. Ответов 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++ Указать те слова, которые содержат хотя бы одну букву k
C++ Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Из введенной строки исключить слова, содержащие заданную букву C++
C++ Распечатать все слова нечетной длины, начинающиеся и оканчивающиеся на букву Т
Найти слова, которые начинаются на заданную букву C++
C++ Вывести слова, которые содержат заданную букву (исправить код)
C++ Вывести в выходной файл все слова, начинающиеся на заданную букву, и их количество
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
magirus
Супер-модератор
 Аватар для magirus
25765 / 14294 / 777
Регистрация: 15.09.2009
Сообщений: 61,294
Записей в блоге: 63
30.07.2016, 14:29     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #2
и чо? ("чо" кстати слово итальянское)
_liv_
101 / 101 / 36
Регистрация: 07.10.2015
Сообщений: 288
30.07.2016, 14:42     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #3
magirus, не-а, итальянским будет cho
shilko2013
 Аватар для shilko2013
239 / 216 / 116
Регистрация: 02.04.2016
Сообщений: 822
Завершенные тесты: 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
239 / 216 / 116
Регистрация: 02.04.2016
Сообщений: 822
Завершенные тесты: 1
30.07.2016, 15:56     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #6
Aerarian, Я так и решаю
volvo
Супер-модератор
 Аватар для volvo
22344 / 14521 / 4116
Регистрация: 22.10.2011
Сообщений: 25,716
Записей в блоге: 3
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
239 / 216 / 116
Регистрация: 02.04.2016
Сообщений: 822
Завершенные тесты: 1
30.07.2016, 16:11     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #8
volvo, А у вас не два?)
volvo
Супер-модератор
 Аватар для volvo
22344 / 14521 / 4116
Регистрация: 22.10.2011
Сообщений: 25,716
Записей в блоге: 3
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
239 / 216 / 116
Регистрация: 02.04.2016
Сообщений: 822
Завершенные тесты: 1
30.07.2016, 16:25     Выделить из заданного списка слова, оканчивающиеся на заданную букву, и указать их род #10

Не по теме:

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



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

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

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

Не по теме:

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

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

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