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

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

Войти
Регистрация
Восстановить пароль
 
Вадим3777
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 53
#1

Используя рекурсивные функции, сделать следующие задачи: - C++

07.03.2013, 12:11. Просмотров 564. Ответов 2
Метки нет (Все метки)

1)Подсчитать количество цифр в заданном числе.


Выполнить следующие задания, оформив каждый пункт в виде функции. Все необходимые дан-ные для функций должны передаваться им в качестве параметров. Использование глобальных пе-ременных в функциях не допускается. При написании программ можно использовать как динамические, так и нединамические массивы. Размерность последних задаётся именованной константой. Для заполнения массивов используйте функции генерации случайных чисел.

Условие: В одномерном массиве, состоящем из n вещественных элементов, вычислить номер мини-мального по модулю элемент массива. Сжать массив, удалив из него все элементы, величи-на которых находится в интервале [a,b]. Освободившиеся в конце массива элементы запол-нить нулями.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2013, 12:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Используя рекурсивные функции, сделать следующие задачи: (C++):

Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n) - C++
Всем привет. Заранее извиняюсь за мб глупые вопросы и навязчивость. Но у меня есть одна просьба. Помогите пожалуйста написать...

Как сделать динамические массивы вместо обычных? Используя функции - C++
Как сделать динамические массивы вместо обычных? Используя функции. Для введения одной матрицы нужна одна функция? т.е. чтобы ввести 2...

Рекурсивные функции. - C++
с самой функцией нет проблем проблема в самой программе задание звучит так Для заданных двух натуральных числа m и n найти НОД(m, n) и...

Рекурсивные функции - C++
в функции мейн обьявить двумерный массив размером A заполнить случайным образом 1 и 2, вывести масив на экран написать рекурсивную...

Рекурсивные функции - C++
Мне нужно решить задачу с факториалом с использованием рекурсивной функции.Я начал её делать но что то не получается #include <stdio.h> ...

рекурсивные функции - C++
Дано натуральные числа n,m ; найти НОД(наибольший общий делитель) . Использовать программу, которая содержит рекурсивную процедуру...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
07.03.2013, 13:00 #2
1)Подсчитать количество цифр в заданном числе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
 
using namespace std;
 
int func1(int,int);
 
int main() {
int a=123,i=0;
 
    cout<<func1(a,i)<<endl;
}
 
int func1(int a,int i)
{
    if(int(a/10)==0){
          return ++i;
    }
    i++;
      return func1(a/10,i);
}
1
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
07.03.2013, 14:19 #3
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int digitsCount( int x )
{
    if ( x < 10 ) return 1;
    return digitsCount( x / 10 ) + 1;
}
 
int minAbs( int *a, int n, int i = 0 )
{
    if ( i == n - 1 ) return i;
    int j = minAbs( a, n, i + 1 );
    if ( abs( a[ i ] ) < abs( a[ j ] ) )
        return i;
    return j;
}
 
int removeItems( int *a, int n, int x, int y, int i = 0, int j = 0 )
{
    if ( i == n ) return j;
 
    if ( a[ i ] >= x && a[ i ] <= y )
    {
        a[ i ] = 0;
    }
    else
    {
        a[ j ] = a[ i ];
        if ( i != j++ )
            a[ i ] = 0;
    }
    return removeItems( a, n, x, y, i + 1, j );
}
 
void fillRand( int *a, int n )
{
    for ( int i = 0; i < n; ++i )
        a[ i ] = rand() % 101 - 50;
}
 
void print( int *a, int n )
{
    for ( int i = 0; i < n; ++i )
        cout << a[ i ] << " ";
    cout << endl;
}
 
int main()
{
    srand( time( 0 ) );
 
    int n, m;
    int *r;
    int a, b;
 
    cout << "-=digitsCount test=-\nEnter number: ";
    cin >> n;
    cout << "digits count for " << n << ": " << digitsCount( n ) << endl;
 
    cout << "\n\n-=minAbs test=-\nEnter array size: ";
    cin >> n;
    r = new int [ n ];
    fillRand( r, n );
    cout << "Array: ";
    print( r, n );
    cout << "minimal element index: " << minAbs( r, n ) << endl;
 
    cout << "\n\n-=removeItems test=-\nEnter a b for previous array: ";
    cin >> a >> b;
    m = removeItems( r, n, a, b );
    cout << "Modified array with new size " << m << ": ";
    print( r, n );
 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2013, 14:19
Привет! Вот еще темы с ответами:

Рекурсивные функции - C++
Написать рекурсивную функцию для вычисления максимального элемента массива из n элементов, цикл не использовать. Показать пример...

рекурсивные функции - C++
Величайшие умы форума помагите пожалуйсто) Задание:Используя рекурсивную функцию, найдите n-й член арифметической прогрессии с...

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

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


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

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

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