Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/20: Рейтинг темы: голосов - 20, средняя оценка - 4.55
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349

Отсеять из массива числа, содержащие заданные цифры

04.09.2015, 10:41. Показов 4183. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в массиве чисел, однозначных, двухзначных и т.д. найти цифры, которые я задам, например 7,8,9,0.
и отсеить из нового массива такие, в котором есть эти цифры?
Например: 7,71, 86, 91, 700, 9218 ну и т.п.

Ну или как-то генерировать числа, в которых будет только цифры 1, 2, 3, 4, 5, 6.

Добавлено через 11 минут
Или как перестановки реализовать...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2015, 10:41
Ответы с готовыми решениями:

Определить входять ли в десятичную запись целого числа заданные цифры
Дано целое число x (99 < x < 9 000 000). Определить: а) входят ли в него цифры 5 и 6; б) наибольшую цифру, которая в него входит ...

Удалить из числа заданные цифры
По условию необходимо удалить из числа n все 2 и 5 у меня вот что написано #include <stdio.h> #include <stdlib.h> ...

Отсеять при вводе повторяющиеся цифры
Задание: Организовать массив, содержащий 20 различных целых чисел. Десять первых элементов массива упорядочить по возрастанию, а десять...

13
 Аватар для awalio
34 / 34 / 36
Регистрация: 22.05.2015
Сообщений: 146
04.09.2015, 11:00
Ну. Сделайте функцию проверки числа на составляющие.
В функцию передавайте число и цифру, которую нужно найти.
И в цикле проверьте каждую.

Что-то в духе:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool isIncluded(int someNumber, int digit)
{    
    while(someNumber != 0)
    {
        if(someNumber % 10 == digit)
        {
            return true;
        }
        else 
        {
             someNumber /= 10;
        }
    }
    return false;
}
Потом просто идете по массиву и проверяете каждое число.

Я Вас правильно понял?
0
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
04.09.2015, 11:02
Это что три разных вопроса?
C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<ctime>
 
int main() {
 
    srand(time(0));
    while(true)
        std::cout << 1+rand() % 6 <<std::endl;  
 
    return 0;
}
0
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349
04.09.2015, 11:05  [ТС]
ture, у вас генерируются числа только от 1 до 5?
Мне нужны числа, в которых будут только они.

Я думаю комбинировкой обойтись, но я такого ещё не делал.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.09.2015, 11:10
Цитата Сообщение от awalio Посмотреть сообщение
Что-то в духе:
Надо для 0 доработать.
Цитата Сообщение от b0nny Посмотреть сообщение
Мне нужны числа, в которых будут только они.
Из какого диапазона числа?
0
5 / 3 / 2
Регистрация: 11.11.2013
Сообщений: 349
04.09.2015, 11:18  [ТС]
Tulosba, вообще у меня должен быть l - который определяет длину комбинировки. 3 - трёхзначные и т.п.
0
 Аватар для awalio
34 / 34 / 36
Регистрация: 22.05.2015
Сообщений: 146
04.09.2015, 11:19
Tulosba, перед while проверить, или число 0?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.09.2015, 12:00
Цитата Сообщение от awalio Посмотреть сообщение
перед while проверить, или число 0?
Если на входе 0 и ищем 0, то вернет false, а должен бы true.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.09.2015, 12:44
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
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
#include <iterator>
 
int main()
{
   const std::vector<int> digits = {7,8,9,0};
   const size_t size = 10;
   std::vector<int> numbers(size);
   std::mt19937 gen{std::random_device()()};
   std::uniform_int_distribution<> distr(0, 100);
   std::generate(numbers.begin(), numbers.end(), [&gen, &distr] { return distr(gen); });
   std::cout << "generated: ";
   for (const auto& v : numbers)
   {
      std::cout << v << " ";
   }
   std::cout << std::endl;
   auto filter = [&digits](int v)
   {
      std::vector<int> ds;
      while (v)
      {
         ds.push_back(v % 10);
         v /= 10;
      }
      return std::find_first_of(ds.begin(), ds.end(), digits.begin(), digits.end()) == ds.end();
   };
   std::cout << "filtered: ";
   std::copy_if(numbers.begin(), numbers.end(), std::ostream_iterator<int>(std::cout, " "), filter);
   std::cout << std::endl;
}
Live
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
04.09.2015, 12:57
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
const size_t size = 10;
А size_t можно так юзать, без std:: и без соответствующего include?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.09.2015, 13:00
Somebody, По-хорошему лучше конечно через std... Но я как-то привык уже использовать просто size_t, а не std::size_t, ибо везде адекватно компилируется.
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.09.2015, 13:20
Как еще один вариант:
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
#include <iostream>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <boost/lexical_cast.hpp>
 
template <typename T, typename... Args>
std::vector<T> filtered(const std::vector<T> &source, Args&&... args)
{
   std::vector<T> result;
   std::string digits = {boost::lexical_cast<char>(args)...};
   std::remove_copy_if(source.cbegin(), source.cend(), std::back_inserter(result), [&](const T& t)
   {
      return std::to_string(t).find_first_of(digits) != std::string::npos;
   });
   return result;
}
 
int main()
{
   std::vector<int> v(100);
   std::iota(v.begin(), v.end(), 1);
   v = filtered(v, 7,8,9,0);
   for (int i : v) std::cout << i << " ";
}
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.09.2015, 13:23
Цитата Сообщение от Somebody Посмотреть сообщение
А size_t можно так юзать, без std:: и без соответствующего include?
Без индклюда всё-таки нет, только если через косвенное включение.
Однако забавно, что при этом с sizeof и auto прокатывает, несмотря на то, что
5.3.3/6 The result of sizeof and sizeof... is a constant of type std::size_t. [ Note: std::size_t is defined in
the standard header <cstddef> (18.2). — end note ]
Есть вот ещё коммент на so по теме.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
04.09.2015, 14:54
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <algorithm>
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string         T_str;
typedef unsigned long long  T_int;
/////////////////////////////////////////////////////////////////////////////////////////
T_int     get_rand_num_with_min_and_max_digits_and_with_len
    (
        int     min_dig,
        int     max_dig,
        int     num_len
    )
{
    auto    base    =       max_dig
                        -   min_dig
                        +   1;
 
    size_t  ind     =   0;
    T_str   s;
 
    for(;;)
    {
        s   =   std::to_string
                    (
                        T_int   (
                                    rand()
                                )
                    );
 
        try
        {
            std::stoull
                (
                    s,
                    &ind,
                    base
                );
 
            if  (
                        s.size()    ==  num_len
                    &&  s.size()    ==  ind
                )
            {
                break;
            }
        }
        catch(...)
        {
            continue;
        }
    }//for
 
    std::for_each
        (
            s.begin     (),
            s.end       (),
 
            [=]         ( char  &   c )
            {
                c += min_dig;
            }
        );
 
    return  std::stoull(s);
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        std::cout   <<  get_rand_num_with_min_and_max_digits_and_with_len
                            (
                                1,
                                6,
                                4
                            )
 
                    <<  "\t\t";
 
        system("pause");
    }//for
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2015, 14:54
Помогаю со студенческими работами здесь

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

Определить, пересекаются ли прямые содержащие заданные отрезки
В текстовом файле хранятся координаты двух отрезков Формат файла: Line1 X1 Y1 X2 Y1 Line2 X1 Y1 X2 Y2

Отсеять из массива один определенный элемент
Есть массив такого вида: Array ( =&gt; =&gt; plugins = plugins =&gt; cache = cache =&gt; comments =...

Удалить из массива все числа, не содержащие повторяющихся цифр
Дан одномерный массив целых чисел. Удалить из него все числа, не содержащие повторяющихся цифр (включая однозначные). int n = 3;...

Удалить из последовательности числа, содержащие 7, но не содержащие 6
Удалить из последовательности числа, содержащие 7, но не содержащие 6, среди оставшихся продублировать простые числа. Программа не...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru