Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.01.2018
Сообщений: 5
1

Найти слова, содержащие соответственно наибольшее и наименьшее количество нечётных цифр и поменять их местами

13.01.2018, 10:41. Показов 1657. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Слова могут содержать любые символы языка. Найти слова, содержащие соответственно наибольшее и наименьшее количество нечётных цифр и поменять их местами.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2018, 10:41
Ответы с готовыми решениями:

В заданном тексте найти слова, содержащие наибольшее и наименьшее количество букв
Задан текст, слова которого разделены пробелом. Напечатать слово, содержащее наибольшее и...

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

Найти слова, содержащие соответственно наибольшее и наименьшее количество нечетных цифр, и поменять их местами
Нужно переделать программу. Сейчас при выполнении мы выбираем количество слов, а потом только по...

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

2
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
14.01.2018, 21:19 2
Лучший ответ Сообщение было отмечено santa_lova как решение

Решение

santa_lova, здравствуйте! Вот решение:

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <bits/stdc++.h>
 
using namespace std;
 
int findOdd(const string& str)
{
    int k = 0;
    for (int i = 0; i < str.size(); i++)
    {
        if ((isdigit(str[i])) && (str[i] % 2))
            k++;
    }
    return k;
}
 
int main()
{
    int n, min, max, x, y;
    cout << "Enter a number of words:\n";
    cout << "n = ";
    cin >> n;
    string str[n];
    cin.ignore();
    cout << "Enter some words. Use digits:\n";
    for (int i = 0; i < n; i++)
    {
        cout << i + 1 << ": ";
        getline(cin, str[i]);
    }
    max = 0;
    min = 100;
    for (int i = 0; i < n; i++)
    {
        if (findOdd(str[i]) < min)
        {
            min = findOdd(str[i]);
            x = i;
        }
        if (findOdd(str[i]) > max)
        {
            max = findOdd(str[i]);
            y = i;
        }
    }
    swap(str[x], str[y]);
    cout << "Target array:\n";
    for (int i = 0; i < n; i++)
    {
        cout << i + 1 << ": " << str[i] << "\n";
    }
    system("pause");
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
15.01.2018, 14:21 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
 
int main()
{
    const std::string str = "e00niki be1n3i2ki 4eli5 va4r6e8niki";
    auto isOdd = [](const char c) { return c == '1' || c == '3' || c == '5' || c == '7' || c == '9'; };
    auto cntOdd = [isOdd](const std::string &s) { return std::count_if(s.cbegin(), s.cend(), isOdd); };
 
    std::istringstream ist(str);
    using input_str = std::istream_iterator<std::string>;
    std::vector<std::string> words { input_str(ist), input_str() };
    const auto p = std::minmax_element(words.begin(), words.end(), [cntOdd](const auto &s1, const auto &s2)
        { return cntOdd(s1) < cntOdd(s2); });
    std::iter_swap(p.first, p.second);
    std::copy(words.cbegin(), words.cend(), std::ostream_iterator<std::string>(std::cout, " "));
}
0
15.01.2018, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2018, 14:21
Помогаю со студенческими работами здесь

Найти слова, содержащие наибольшее и наименьшее количество нечетных цифр, и поменять их местами
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Слова могут...

Найти слова, содержащие наибольшее и наименьшее количество гласных букв, и поменять их местами
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут...

Найти слова, содержащие соответственно наибольшее и наименьшее количество заглавных латинских букв
помогите пожалуйста прогу написать: Дан массив из n слов произвольной длины (длина слова не...

Найти наибольшее наименьшее значение массива, поменять их местами
помогите поменять наибольшее и наименьшее значение массива местами Sub massiv() Dim a() As...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru