Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 4

Найти слово содержащее наибольшее количество цифр

11.12.2018, 21:26. Показов 4713. Ответов 10

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

Добавлено через 14 минут
На C++
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.12.2018, 21:26
Ответы с готовыми решениями:

Вывести слово, содержащее наибольшее количество цифр и вывести число цифр в слове
Дана строка. Исключить из нее подстроку, расположенную между самой левой открывающейся скобкой «(» и самой правой закрывающейся скобкой...

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

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

10
Злостный нарушитель
 Аватар для Verevkin
10634 / 5785 / 1277
Регистрация: 12.03.2015
Сообщений: 26,722
11.12.2018, 21:30
А где исходные данные?
1
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 4
11.12.2018, 21:32  [ТС]
Строка например = "asd231 33333 dddddd"
0
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
11.12.2018, 21:33
Лучший ответ Сообщение было отмечено flores1 как решение

Решение

А самому попробывать?

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
#include <iostream>
 
using namespace std;
 
int main()
{
    string mostLat, mostNum, input;
    int latinCount, numCount;
    int latinMax = 0, numMax = 0;
    for(int i = 0; i < 5; i++) //Вводим пять слов
    {
        cin >> input;
 
        //смотрим слово на предмет самого латинского
        latinCount = 0;
        for(size_t i = 0; i < input.size(); i++) //проходимся по всему слову
        {
            if( (input[i] > 'a' && input[i] < 'z') || (input[i] > 'A' && input[i] < 'Z')) //если влезает в границы латиницы
                latinCount++; //увеличиваем счетчик на 1
        }
        if(latinCount >= latinMax) //если счетчик больше максимального
        {
            latinMax = latinCount; //делаем его максимальным
            mostLat = input; //и запоминаем слово
        }
        //а теперь на предмет самого числового
        numCount = 0;
        for(size_t i = 0; i < input.size(); i++)
        {
            if( (input[i] > '0' && input[i] < '9') )
                numCount++;
        }
        if(numCount >= numMax)
        {
            numMax = numCount;
            mostNum = input;
        }
    }
 
    cout << "Latin: " << mostLat << endl << "Number: " << mostNum << endl;
 
    return 0;
}
Code
1
2
3
4
5
6
7
8
abcd
000000
123
ammmmmmm
a1b2c3
Latin: ammmmmmm
Number: a1b2c3
Press <RETURN> to close this window...
Если не понятно почему size_t - из-за размерностей. Подробнее - гугли, либо впиши вместо size_t int и не парься, препод ругать не будет
2
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 4
11.12.2018, 21:35  [ТС]
thanx!
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
11.12.2018, 22:02
mvngr, из 21 и 33 строки надо убрать знак =, если нет слов с латинскими или цифрами срабатывает последнее слово
0
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
11.12.2018, 22:08
marat_miaki, upd: лажанул, вы правы
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.12.2018, 22:26
mvngr, ТС вроде произвольная строка нужна, а не 5 слов
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
11.12.2018, 22:39
тогда уж так
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
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str = "Из этой группы 14 слов содержащих латинские буквы eklmn выделить самое главное - Знания";
    std::string word, mostLat, mostNum;
    std::istringstream ins(str);
    int latinCount, numCount;
    int latinMax = 0, numMax = 0;
     
    while(ins >> word){
       latinCount = 0;
        for(size_t i = 0; i < word.size(); i++) //проходимся по всему слову
        {
            if( (word[i] > 'a' && word[i] < 'z') || (word[i] > 'A' && word[i] < 'Z')) //если влезает в границы латиницы
                latinCount++; //увеличиваем счетчик на 1
        }
        if(latinCount > latinMax) //если счетчик больше максимального
        {
            latinMax = latinCount; //делаем его максимальным
            mostLat = word; //и запоминаем слово
        }
        //а теперь на предмет самого числового
        numCount = 0;
        for(size_t i = 0; i < word.size(); i++)
        {
            if( (word[i] > '0' && word[i] < '9') )
                numCount++;
        }
        if(numCount > numMax)
        {
            numMax = numCount;
            mostNum = word;
        }
    }
        std::cout << "Latin: " << mostLat << std::endl << "Number: " << mostNum << std::endl;
    return 0;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.12.2018, 00:34
Лучший ответ Сообщение было отмечено flores1 как решение

Решение

mvngr, marat_miaki, условия в неравенствах должны быть не строгие и вполне достаточно одного цикла.

flores1,
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
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
 
int main()
{
    string s, word, mostDig, mostLet;
    cout << "String:\n";
    getline(cin, s);
    int i, count_letters, count_digits, max_letters=0, max_digits=0;    
     
    stringstream words(s);
    while (words >> word)
    {
        i=0;
        count_letters=0;
        count_digits=0;
        while(word[i])         
        {        
            if(word[i] >= '0' && word[i] <= '9') count_digits++;
            if((word[i] >= 'a' && word[i] <= 'z') || (word[i] >= 'A' && word[i] <= 'Z')) count_letters++;
            i++;        
        }
        if(count_digits > max_digits) {max_digits=count_digits; mostDig=word;}
        if(count_letters > max_letters) {max_letters=count_letters; mostLet=word;}
    }
    
    cout <<"Word with max digits: "<<mostDig<<"\nWord with max letters: "<<mostLet<<"\n";
system("pause");
return 0;
}
код выведет первое слово с наибольшим количеством цифр и первое слово с наибольшим количеством латинских букв.
считал, что в введённой строке заведомо есть цифры и латинские буквы. проверку на отсутствие (например в строке нет цифр) не добавлял, можете добавить самостоятельно если нужно.
1
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
12.12.2018, 19:15
Yetty, вообще, в задании даже ничего про ввод данных не сказано. Так что я выбрал как мне удобнее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2018, 19:15
Помогаю со студенческими работами здесь

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

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

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

В заданных текстовых файлах найти слово содержащее наибольшее количество указанных букв
даны файлы содержащий текст и некоторые буквы найти слово содержанее наибольшее количество указанных букв

Ввести строку, вывести слово, содержащее наибольшее количество гласных букв
Привет Ребят,мне нужно сделать лабораторную по информатике,вот что мне надо Ввести строку, вывести слово, содержащее наибольшее...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru