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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Olga93
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 6
#1

Рекурсивно вычислить количество цифр в строке - C++

09.12.2011, 18:07. Просмотров 2973. Ответов 12
Метки нет (Все метки)

Задача: Разработать рекурсивную функцию, возвращающую значение: для вычисления количества цифр в строке; с помощью данной функции определить, в каком из двух предложений цифр больше.

(Учитывая, что я совершенно ничего не поняла из задания, то у меня нет даже собственной наработки, простите, очень сильно прошу помощи в написании или же подсказок, ведь возможно не так страшен волк как его малюют )
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2011, 18:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивно вычислить количество цифр в строке (C++):

Рекурсивно определить количество арабских цифр в строке - C++
Описать рекурсивную подпрограмму, определяющую количество арабских цифр в данной строке.

Рекурсивно вычислить количество цифр в заданном натуральном числе - C++
Разработать рекурсивную функцию, возвращающую значение для вычисления количества цифр в заданном натуральном числе. Обращаюсь в...

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

Строка: В строке символов, вводимой с клавиатуры, вычислить количество разных цифр. - C++
Пожалуйста, помогите решить задачу. В строке символов вводимой с клавиатуры, вычислить количество разных цифр.

Подсчитать общее количество цифр и количество единиц в строке - C++
Вводится текст. Среди символов этого текста имеется несколько цифр. Подсчитать общее количество цифр и количество единиц в строке. Если в...

Количество цифр в строке - C++
Написал программу, которая вычисляет количество цифр в строке. Но программа не работает. Что не правильно? #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.12.2011, 18:21 #2
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
#include <iostream>
 
using namespace std;
 
int digit_count (char *s)
{
    return *s ? *s >= '0' && *s <= '9' ? 1 + digit_count (s+1) : digit_count (s+1) : 0;
}
 
int main(int argc, char* argv[])
{
    char s1[]="123 saf 45 fea" ;
    char s2[]="1sad 3" ;
 
    if ( digit_count (s1) > digit_count (s2) )
        cout <<" In the firts ";
    else
        if ( digit_count (s1) == digit_count (s2) )
            cout <<" Equally ";
        else
            cout <<" In the second ";
 
    cout <<endl;
 
    system ("pause");
    return 0;
}
1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.12.2011, 18:53 #3
C
1
2
3
4
int digit_count (char *s)
{
   return *s ? (isdigit(*s) != 0) + digit_count(s+1) : 0;
}
2
Olga93
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 6
09.12.2011, 20:30  [ТС] #4
go, поясните пожалуйста седьмую строку.
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
09.12.2011, 20:34 #5
Thinker, брутальный вариант
C
1
size_t digits_count(const char * s) { return ( *s ) ? !!isdigit(*s) + digits_count(s+1) : 0; }
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.12.2011, 20:43 #6
Olga93, движемся по строке с помощью рекурсии, одновременно проверяя, является ли символ цифрой.
1
Olga93
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 6
09.12.2011, 20:51  [ТС] #7
go,
Спасибо, и последний, извините вопрос, что какую роль выполняет звёздочка (т.е. char *s, char* argv) в выражениях:

Цитата Сообщение от go Посмотреть сообщение
int digit_count (char *s)


Цитата Сообщение от go Посмотреть сообщение
int main(int argc, char* argv[])
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.12.2011, 20:52 #8
Olga93, список параметров, которые принимает функция.
1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.12.2011, 21:39 #9
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
!!isdigit(*s)
Честно говоря, не думал о таком классном приеме
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
09.12.2011, 22:49 #10
Цитата Сообщение от Olga93 Посмотреть сообщение
какую роль выполняет звёздочка
Прочитайте в любой вменяемой книге раздел про указатели, всё станет ясно. Рекомендую "Язык программирования С" Керниган, Ритчи, или "Полный справочник по С" Шилдт.
0
go
09.12.2011, 22:52
  #11

Не по теме:

easybudda, Ой, а я видно "по диагонали" прочитал вопрос автора (слово звездочка не заметил)

0
alkagolik
Заблокирован
10.12.2011, 09:17 #12
Цитата Сообщение от Thinker Посмотреть сообщение
Честно говоря, не думал о таком классном приеме
такие приемы широко применяются на этапе проектирования для сведения логической функции устройства в базис двух логических операций, например из функции в Булевом базисе исключить дизъюнкцию. Мы с вами еще много чего интересного узнаем
1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.12.2011, 09:33 #13
Цитата Сообщение от alkagolik Посмотреть сообщение
такие приемы широко применяются...

Не по теме:

да, как вижу, полезная штука

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2011, 09:33
Привет! Вот еще темы с ответами:

Количество цифр в строке - C++
Задание: Дана строка. Подсчитать количество содержащихся в ней цифр. int countDigits(char * str); Не хочет вводится строка с помощью...

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес - C++
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое...

Подсчитать количество цифр в строке - C++
???Ввести строку состоящую из цыфр и букв,и посчитать колтчество цыфр(быквы не должно брать считать к количеству)!

Посчитать количество цифр в строке - C++
Как посчитать количество цифр(функция void count)? Написал вот так, что в цикле писать(как передать массив в цикл)#include &lt;iostream&gt; ...


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

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

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