С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/55: Рейтинг темы: голосов - 55, средняя оценка - 4.76
0 / 0 / 1
Регистрация: 01.09.2012
Сообщений: 97

Сколько раз повторяется цифра в числе, введенном пользователем

16.08.2017, 13:39. Показов 10719. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пользователь вводит число. Потом вводит цифру этого числа и должно вывести сколько раз эта цифра повторяется.

Код такой:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
    int num, n, co;
    cout<<"Number?"<<endl;
    cin>>num;
    cout<<"Cifra?"<<endl;
    cin>>n;
    int count = 0;
    for (; num>0; count++) {
        num /= 10;
    }
    for (int i = 0; i < count; i++) {
        if (num[i] == n) {
            co++;
        }
    }
    cout<<"Number of "<<n<<" is: "<<co;
    return 0;
}
и на этой строке
C++
1
if (num[i] == n)
выдает: "invalid types int[int] for array subscript c++"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2017, 13:39
Ответы с готовыми решениями:

Определить, сколько раз во введенном числе встречается цифра 5
. Ввести число. Определить, сколько раз в нем встречается цифра 5. Правильно ли решил? include &lt;iostream&gt; using...

Посчитать, сколько раз встречается каждая цифра в введенном с клавиатуры числе
Посчитать, сколько раз встречается каждая цифра в введенном с клавиатуры числе.

Определить, сколько раз число, введенное пользователем, повторяется в массиве
Как используя массивы создать программу, которая покажет сколько раз число, введенное пользователем повторяется в массиве? Например, есть...

8
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.08.2017, 13:57
num не массив, чтобы к нему по индексу обращаться.
0
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
16.08.2017, 18:09
если число от 0 до 10, то вот код
C++
1
2
3
4
5
6
7
string chislo; cin >> chislo;
string find; cin >> find;
int count = 0;
for ( int i = 0; i < chislo.length(); i++)
     if ( chislo[i] == find[0] ) count++;
 
cout << count << " times" << endl;
Добавлено через 2 минуты
если через числа, то
C++
1
2
3
4
5
6
7
8
int ch, find, count = 0;
cin >> ch >> find;
while(ch!=0)
{
    if ( ch % 10 == find )  { count++; }
    ch/=10;
}
cout << count << " times";
0
0 / 0 / 1
Регистрация: 01.09.2012
Сообщений: 97
16.08.2017, 18:53  [ТС]
Спасибо!!! Сначала тоже делал как наверху (где от 0 до 10), но я это обобщал на случай любого числа и ошибку выдавало. Теперь все работает
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
16.08.2017, 21:59
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
int main(){
 int num[10]={0},n;
 char b;
 while(1)
  {
    cin.get(b);
    if(b=='\n')break;
    num[b-'0']++;
   }
   cin>>n;
   cout<<num[n];
    system("pause>NULL");
    return 0;
}
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
16.08.2017, 22:25
arman22,
Зачем что-то делить, чтобы вытащить цифру, если можно считать строку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main()
{
    std :: string number;
    std :: cin >> number;
    
    char digit;
    std :: cin >> digit;
    int result{0};
    for (auto &symbol : number)
        {
            if (symbol == digit)
                {
                    result++;
                }
        }
    std :: cout << result;
}
0
 Аватар для Profi_GMan
4 / 4 / 4
Регистрация: 11.09.2016
Сообщений: 136
Записей в блоге: 5
17.08.2017, 09:44
вот решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str;
    cin >> str;
    int num;
    cin >> num;
    num += 48; //код символов цифр, это цифра + 48
    int len = str.length();
    int cnt = 0;
    for(int i = 0; i < len; i++) {
        if(str[i] == num) cnt++; //здесь от string мы получаем символ, поэтому выше прибавляли 48
    }
    cout << cnt;
}
Добавлено через 16 секунд
вот решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str;
    cin >> str;
    int num;
    cin >> num;
    num += 48; //код символов цифр, это цифра + 48
    int len = str.length();
    int cnt = 0;
    for(int i = 0; i < len; i++) {
        if(str[i] == num) cnt++; //здесь от string мы получаем символ, поэтому выше прибавляли 48
    }
    cout << cnt;
}
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38164 / 21099 / 4306
Регистрация: 12.02.2012
Сообщений: 34,687
Записей в блоге: 14
17.08.2017, 12:01
Не нужно ни строк, ни массивов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    int n,d,k=0;
    cout << "Enter number: ";
    cin >> n;
    cout << "Enter digit: ";
    cin >> d;
    while (1)
    {
      if ((n % 10)== d) k++;
      if (n==0) break;
      n/=10;
    }  
    cout << k << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
0 / 0 / 10
Регистрация: 15.04.2016
Сообщений: 17
24.08.2017, 12:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    int a, c, k = 0;
    cin >> a >> c;
    while (a > 0){
        if (a % 10 == c)
            k++;
        a /= 10;
    }
    cout << k;
}
Добавлено через 15 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    int a, c, k = 0;
    cin >> a >> c;
    while (a > 0){
        if (a % 10 == c)
            k++;
        a /= 10;
    }
    cout << k;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2017, 12:46
Помогаю со студенческими работами здесь

Сколько раз встречается наименьшая цифра в числе
Здравствуйте! У меня есть какое-то число. Я нахожу наименьшую цифру в нем: int x; cin &gt;&gt; x; int max = x % 10; while (x...

Сколько раз в данном числе встречается цифра 5 ?
т.е допустим дано 3х значное число 546. Значит там цифра &quot;5&quot; будет встречаться один раз. не знаю как написать это. если можно то...

Сколько раз повторяется максимальная цифра в числе?
Можете помочь с решением этой задачи? Я пытался сделать, но что-то не получилось(Объясните, пожалуйста, в чем ошибка) { int...

Определить сколько раз в числе повторяется последняя цифра
С клавиатуры водится число! Определить сколько раз в нем повторяется последнее число! Помогите мне пожалуйста хоть кто-нибудь! Решать...

Сколько раз во введенном с клавиатуры числе встречается цифра 5
Здравствуйте, я в программировании новичок. И мне необходима ваша помощь в составлении кода программы на языке С# 1.Определите, сколько...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru