0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 6
1

Необходимо определить, сколько раз каждая цифра встречается в строке

28.11.2017, 20:37. Показов 6752. Ответов 3
Метки нет (Все метки)

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


У меня есть такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int a[10];
    memset(a, 0, 10 * sizeof(int));
    char c;
 
    while ((c = getchar()) != '.')
    {
        if ((c >= '0') && (c <= '9'))
            ++a[c - '0'];
    }
 
    int i;
    for (i = 0; i < 10; i++)
        cout << "Число " << i << " встречается " << a[i] << " раз" << endl;
    system("pause");
    return 0;
}
Он работает, но я не понимаю, что происходит здесь
C++
1
memset(a, 0, 10 * sizeof(int));
и здесь
C++
1
++a[c - '0'];
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2017, 20:37
Ответы с готовыми решениями:

Определить сколько раз встречается каждая цифра в текстовом массиве
Упростите программу, которая ищет сколько раз встречается одна и та же цифра в двумерном массиве,...

Определить, сколько раз каждая буква латинского алфавита встречается в строке
Дана строка длиной не более 80 символов, заканчивающаяся точкой. Необходимо определить, сколько раз...

Массивы. Определить, сколько раз каждая буква латинского алфавита встречается в строке
Помогите пожалуйста. Дана строка длиной не более 80 символов, оканчивающаяся точкой. Определить,...

Вывести на экран сколько раз встречается каждая цифра в массиве
Двумерный массив MxN заполнить случайными числами из диапазона . Вывести на экран сколько раз...

3
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
28.11.2017, 21:10 2
Лучший ответ Сообщение было отмечено Bandiron как решение

Решение

Цитата Сообщение от Bandiron Посмотреть сообщение
memset(a, 0, 10 * sizeof(int));
заполняет массив a нулями

Цитата Сообщение от Bandiron Посмотреть сообщение
++a[c - '0'];
увеличивает элемент массива а на единицу, [c - '0'] тут будет соответствовать введенной цифре

Добавлено через 52 секунды
только тут нет строки, как таковой

Добавлено через 8 минут
можно так, к примеру
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>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int a[10] = {0};
 
    char c[80];
    cin >> c;
    int i = 0;
 
    while(c[i]!='.' && c[i]!='\0')
    {
        if ((c[i] >= '0') && (c[i] <= '9'))
            ++a[c[i] - '0'];
        i++;
    }
 
    for (int i = 0; i < 10; i++)
        cout << "Число " << i << " встречается " << a[i] << " раз" << endl;
 
    system("pause");
    return 0;
}
только что конкретно подразумевается под строкой? string или, как тут, массив char? и не ясно что делать, ежели строка не оканчивается точкой
1
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 6
28.11.2017, 21:13  [ТС] 3
Конкретно тут, строка - массив char. И она оканчивается точкой по условию.
0
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
28.11.2017, 21:27 4
Цитата Сообщение от Bandiron Посмотреть сообщение
И она оканчивается точкой по условию.
Для справки: этот код будет считать цифры до точки или до конца, если не найдет её.

Добавлено через 35 секунд
Но, я так понимаю, обрабатывать введенные данные он не должен

Добавлено через 10 минут
чтоб с пробелами работало:
поменять
C++
1
cin >> c;
на
C++
1
cin.getline(c, 80);
и
Цитата Сообщение от Bandiron Посмотреть сообщение
длиной не более 80 символов
тут доступны для ввода 79/80 символов, но это тонкости
0
28.11.2017, 21:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2017, 21:27
Помогаю со студенческими работами здесь

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

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

Определить сколько раз встречается цифра равная последней
Дано натуральное число, определить б) сколько раз в нем встречается цифра равная последней.;

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru