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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
iron_Pet9
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 3
#1

Задан номер мобильного телефона - определить, какие цифры отсутствуют в этом номере - C++

03.06.2013, 16:39. Просмотров 2073. Ответов 8
Метки нет (Все метки)

Задан номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере.

Помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задан номер мобильного телефона - определить, какие цифры отсутствуют в этом номере (C++):

Номер мобильного телефона - C++
Задан номер мобильного телефона. Определить, какие цифры отсутствуют в этом номере. Входные данные В единственной строке задан...

Определить, какие из магазинов можно закрыть, и при этом совокупность реализуемых деталей не изменится - C++
В городе существует несколько магазинов по продаже автомобильных деталей Представленные множества - не упакованные. Количество...

Определить, какие точки находятся на одинаковом расстоянии Если таковых нет программа должна сообщать об этом - C++
Написать программу, которая по заданным координатам трех точек на координатной плоскости определяет, какие точки находятся на одинаковом...

Определить, какие цифры встречаются в числе несколько раз - C++
Здравствуйте! Помогите написать программу на С++ Ввести натуральное число и определить, какие цифры встречаются несколько раз. ...

Определить номер цифры в числе - C++
Дано натуральное число. Определить номер некоторой заданной цифры в нем, считая от конца числа. Если такой цифры нет, ответом должно быть...

Ввести натуральное число и определить, какие цифры встречаются несколько раз - C++
Плиис помогите, пожалуйста) Ввести натуральное число и определить, какие цифры встречаются несколько раз

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 780
Завершенные тесты: 1
03.06.2013, 16:49 #2
Определить, какие цифры отсутствуют в этом номере.
Не совсем понятно... Номер 10-тизначный, или какой??
Я так понял, что определить какие из цифр от 0 до 9 в нём отсутствуют? так?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.06.2013, 16:55 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <set>
 
int main() {
    
    int number;
    std::cin >> number;
    
    std::set<int> s;
    for( int i=0; i<10; ++i ) s.insert(i);
 
    while( number )
    {
        s.erase( number%10 );
        number /= 10;
    }
    
    for( auto& d : s ) std::cout << d;
 
    return 0;
}
P.S. Только нули в начале номера не учитываются.

Добавлено через 1 минуту
Цитата Сообщение от serggg Посмотреть сообщение
определить какие из цифр от 0 до 9 в нём отсутствуют?
А Вы знаете другие цифры? Из числа арабских конечно.
iron_Pet9
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 3
03.06.2013, 22:06  [ТС] #4
Цитата Сообщение от serggg Посмотреть сообщение
Не совсем понятно... Номер 10-тизначный, или какой??
Я так понял, что определить какие из цифр от 0 до 9 в нём отсутствуют? так?
да из 10 цифр только с 0 спереди!
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.06.2013, 22:36 #5
Только цифры и без пробелов:
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
#include <iostream>
#include <string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    string number;
    int digit[10] = {0};
    
    cout << "Введите номер: ";
    cin >> number;
 
    for (int i = 0; i < number.size(); ++i)
        digit[number[i] - 48] += 1;
    
    for(int i = 0; i < 10; ++i)
        cout << "Цифра " << i << " = " << digit[i] << endl;
 
    system("pause");
    return 0;
}
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.06.2013, 22:43 #6
alsav22, я Вас не узнаю. Нужны отсутствующие цифры, а не присутствующие. Инкремент такой странный. И вычисление size() на каждой итерации.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.06.2013, 23:11 #7
Так можно с пробелами и с чем угодно (тире, скобки и пр.):
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
#include <iostream>
#include <string>
#include <cctype>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    string number;
    int digit[10] = {0};
    
    cout << "Введите номер: ";
    getline(cin, number);
 
    for (int i = 0; i < number.size(); ++i)
    {
        if (isdigit((unsigned char)number[i]))
            ++digit[number[i] - 48];
    }
    
    for(int i = 0; i < 10; ++i)
        cout << "Цифра " << i << " = " << digit[i] << endl;
 
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
Нужны отсутствующие цифры, а не присутствующие.
Там где 0, значит нет.

Добавлено через 11 минут
С выводом только отсутствующих цифр:
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
#include <iostream>
#include <string>
#include <cctype>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    string number;
    int digit[10] = {0};
    
    cout << "Введите номер: ";
    getline(cin, number);
 
    for (int i = 0; i < number.size(); ++i)
    {
        if (isdigit((unsigned char)number[i]))
            ++digit[number[i] - 48];
    }
    
    cout << "В номере отсутствуют цифры: " << endl;
    for(int i = 0; i < 10; ++i)
        if (digit[i] == 0) cout << i << endl;
        
    system("pause");
    return 0;
}
Добавлено через 7 минут
Или так:
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
#include <iostream>
#include <string>
#include <cctype>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    string number;
    int digit[10] = {0};
    
    cout << "Введите номер: ";
    getline(cin, number);
 
    for (int i = 0; i < number.size(); ++i)
    {
        if (isdigit((unsigned char)number[i]))
            ++digit[number[i] - 48];
    }
    
    cout << "В номере отсутствуют цифры: " << endl;
    int flag = 0;
    for(int i = 0; i < 10; ++i)
    {
        if (digit[i] == 0)
        {
            cout << i << endl;
            flag = 1;
        }
    }
    if (flag == 0) cout << "Таких нет!" << endl;    
    
    system("pause");
    return 0;
}
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
03.06.2013, 23:25 #8
почему нельзя просто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string number;
    getline(cin, number);
    for (char i = 48; i != 58; ++i)
        if (number.find(i) == string::npos)
            cout << i;
    return 0;
}
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.06.2013, 08:29 #9
Цитата Сообщение от Olivеr Посмотреть сообщение
почему нельзя просто
А почему нельзя использовать символьные константы вместо ASCII-кода? И есть ли гарантия, что все цифры в любой таблице символов идут по порядку? Может немного паранойя, но все же.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 08:29
Привет! Вот еще темы с ответами:

Ввести натуральное число и определить, какие цифры встречаются несколько раз. - C++
Здраствуйте,Спецы! Помогите со следующими задачами,необходимо написать на С++,заранее благодарен:) Ввести натуральное число и...

Определить номер максимальной по величине цифры - C++
помогите написать 2 программы на с++ (если можно попроще) 1)Определить номер максимальной по величине цифры. 2)Определить,...

Определить порядковый номер цифры с максимальной величиной - C++
Дано натуральное число, в котором все цифры различны. Определить порядковый номер его максимальной цифры, считая номера: -от конца числа; ...

Дано натуральное число. Определить номер цифры «8» - C++
Дано натуральное число. Определить номер цифры «8» в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.06.2013, 08:29
Ответ Создать тему
Опции темы

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