Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Bandiron
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 6
1

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

28.11.2017, 20:37. Просмотров 955. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2017, 20:37
Ответы с готовыми решениями:

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

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

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

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

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

3
Herji
292 / 202 / 174
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
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
Bandiron
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 6
28.11.2017, 21:13  [ТС] 3
Конкретно тут, строка - массив char. И она оканчивается точкой по условию.
0
Herji
292 / 202 / 174
Регистрация: 11.05.2016
Сообщений: 658
Завершенные тесты: 1
28.11.2017, 21:27 4
Цитата Сообщение от Bandiron Посмотреть сообщение
И она оканчивается точкой по условию.
Для справки: этот код будет считать цифры до точки или до конца, если не найдет её.

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

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

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

Определить сколько раз в числе встречается заданная цифра
Кто поможет. С++ Дано натуральное число. Определить:сколько раз в нем...

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


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

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

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