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

Программа, которая выводит все цифры, встречающиеся в символьной строке больше одного раза

25.04.2023, 12:19. Показов 1340. Ответов 9
Метки нет (Все метки)

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

Входные данные
Входная строка может содержать содержит цифры, пробелы и латинские буквы.

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

Примеры:

входные данные

asd12gh23

выходные данные

2
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2023, 12:19
Ответы с готовыми решениями:

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

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

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

9
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
25.04.2023, 21:15
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter string: ";
    cin >> str;
    
    int vnDigs[10] {};
    for( char c : str )
        if( isdigit(c) )
            vnDigs[ c-'0' ]++;
    
    bool bOk = false;
    for( int i=0; i<10; ++i )
        if( vnDigs[i] > 1 )
        {
            bOk = true;
            cout << i << ' ';
        }
 
    if( !bOk ) cout << "NO";
 
    return 0;
}
1
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
25.04.2023, 22:18
Evgen173, не поностью выполнил условие:в строке могут быть пробелы
2
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
25.04.2023, 22:37
Donkix, конечно же, ошибся, благодарю
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter string: ";
    getline( cin, str, '\n' );
    
    int vnDigs[10] {};
    for( char c : str )
        if( isdigit(c) )
            vnDigs[ c-'0' ]++;
    
    bool bOk = false;
    for( int i=0; i<10; ++i )
        if( vnDigs[i] > 1 )
        {
            bOk = true;
            cout << i << ' ';
        }
 
    if( !bOk ) cout << "NO";
 
    return 0;
}
1
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
25.04.2023, 22:37
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
#include <iostream>
#include <stack>
#include <cstring>
using namespace std;
 
int main()
{   
    stack<int> st;
    string str;
    getline(cin,str);
    int count = 0;
    int mas[10]{0};
    bool b = false;
    for(int i = 0;i < str.size();i++)
    {
        if(isdigit(str[i]) && !(mas[str[i]-'0']))
        {
            st.push(str[i]-'0');
            count++;
            for(int j = i+1; j < str.size();j++)
            {
                if(st.top() == (str[j]-'0'))
                {
                    mas[st.top()] = 1;
                    count--;
                    st.pop();
                                b = true;
            }
        }
    }
    }
        if(b)
       for(int i = 0; i < 10;i++)
        if(mas[i])
            cout << i;
        else cout << "No";
    while(count)
    {
        st.pop();
        count--;
    }       
}
Предлагаю такой вариант, он немного больше, но, по моему мнению, красивый
1
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
25.04.2023, 22:59
Donkix, а что произойдет при вызове if(st.top(), когда стек будет уже пустой? Его проверять рекомендуют через stack.empty(). А вообще туда же к b = true; пошел бы break;
C++
1
2
3
4
5
6
7
8
9
            for(int j = i+1; j < str.size();j++)
            {
                if(st.top() == (str[j]-'0'))
                {
                    mas[st.top()] = 1;
                    count--;
                    st.pop();
                    b = true;
            }
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,238
26.04.2023, 01:34
Цитата Сообщение от Donkix Посмотреть сообщение
Предлагаю такой вариант
В чем смысл этого варианта? Какую функцию в нем выполняет стек st?

Цитата Сообщение от Donkix Посмотреть сообщение
он немного больше, но, по моему мнению, красивый
Вариант, который безо всяких на то причин, превращает элементарную однопроходную задачу в многократный квадратичный рескан строки? Нет, это какое-то неопонятно зачем понадобвшееся толчение воды в ступе.
0
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
26.04.2023, 07:19
Evgen173,Мой косяк

Добавлено через 44 секунды
TheCalligrapher,
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Какую функцию в нем выполняет стек
Хранит текущий проверяемый элемент
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,238
26.04.2023, 08:20
Цитата Сообщение от Donkix Посмотреть сообщение
Хранит текущий проверяемый элемент
Зачем он его хранит? Элемент и так уже "хранится" в строке. Зачем его еще где-то "хранить"? И, самое главное, зачем его хранить именно в стеке? Где в вашей реализации используется "стековость" стека? Я вижу в коде, что одному push может соответствовать несколько pop. В чем тут задумка? Как это должно работать?
0
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
26.04.2023, 10:07
TheCalligrapher, как подчеркнул Evgen173, я в этом плане немного проебался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2023, 10:07
Помогаю со студенческими работами здесь

Программа, которая находит все различные цифры в символьной строке
Напишите программу, которая находит все различные цифры в символьной строке. Входные данные На вход программе подаётся символьная...

В исходном массиве все элементы, встречающиеся больше одного раза, заменить на нули
: в исходном массиве все элементы, встречающиеся больше одного раза заменить на нули

Создать процедуру, которая выводит на экран все цифры, встречающиеся в переданном ей тексте
Создать процедуру, которая выводит на экран все цифры, встречающиеся в переданном ей тексте.

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

Строки. Вычеркнуть слова, встречающиеся больше одного раза
из данного предложения вычеркнуть слова,встречающиеся больше одного раза


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru