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

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

19.04.2013, 20:23. Показов 1297. Ответов 3
Метки нет (Все метки)

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

Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам последний элемент. Последний элемент массива не изменять. Осуществить сдвиг влево на k позиций, где k – число нечетных элементов
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2013, 20:23
Ответы с готовыми решениями:

Преобразовать массив, прибавив к четным числам первый элемент
Не получается решить задачу можете помочь что как нужно? Дан целочисленный массив размера N....

Преобразовать массив прибавив к нечетным числам последний элемент
Дан целочисленный массив размера N. Преобразуйте его, прибавив к нечетным числам последний элемент....

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

Преобразовать целочисленный массив, прибавив к нечетным числам первый элемент
Помогите пожалуйста!!!Дан целочисленный массив. Преобразовать его, прибавив к нечетным числам...

3
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
19.04.2013, 21:21 2
Dron16, вот первая часть, а вторую часть тоже рекурсивно делать?

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
#include <iostream>
#include <iomanip>
#include <iterator>
#include <algorithm>
using namespace std;
 
void mas_trnsf(int *mas, int size, int idx){
    if(idx < 0)
        return;
    else{
        if(mas[idx] % 2 == 0)
            mas[idx] += mas[size];
 
        return mas_trnsf(mas, size, idx - 1);
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int size(5);
    int *mas = new int[size];
    
    for(int i = 0; i < size; ++i)
        mas[i] = i + 1;
 
    cout << "mas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    mas_trnsf(mas, size - 1, size - 2);
 
    cout << "\nmas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    cout << "\n\n";
    return 0;
}
1
3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
19.04.2013, 21:51  [ТС] 3
yoghurt92, Да )
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
19.04.2013, 22:34 4
Dron16, чуть не забыл про вторую задачу, вот

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
#include <iostream>
#include <iomanip>
#include <iterator>
#include <algorithm>
using namespace std;
 
void mas_change(int *mas, int size, int number){
    if(number == 0)
        return;
    else{
        rotate(mas, mas+1, mas+size);
 
        return mas_change(mas, size, number - 1);
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int size(5);
    int *mas = new int[size], number(0);
    
    for(int i = 0; i < size; ++i){
        mas[i] = i + 1;
        if(mas[i] & 1)
            ++number;
    }
 
    cout << "mas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    mas_change(mas, size, number);
 
    cout << "\nmas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    cout << "\n\n";
    return 0;
}
Добавлено через 3 минуты
Dron16, а вот тут вариант уже не с помощью STL а ручками

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
#include <iostream>
#include <iomanip>
#include <iterator>
#include <algorithm>
using namespace std;
 
void mas_change(int *mas, int size, int number){
    if(number == 0)
        return;
    else{
        int temp = mas[0];
        for (int i = 0; i < size - 1; i++)
            mas[i] = mas[i + 1];
        mas[size - 1] = temp;
        
 
        return mas_change(mas, size, number - 1);
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int size(5);
    int *mas = new int[size], number(0);
    
    for(int i = 0; i < size; ++i){
        mas[i] = i + 1;
        if(mas[i] & 1)
            ++number;
    }
 
    cout << "mas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    mas_change(mas, size, number);
 
    cout << "\nmas: ";
    copy(mas, mas + size, ostream_iterator<int>(cout, " "));
 
    cout << "\n\n";
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2013, 22:34
Помогаю со студенческими работами здесь

Класс: преобразовать целочисленный массив, прибавив к нечетным числам первый элемент
Преобразовать целочисленный массив, прибавив к нечетным числам первый элемент. Через класс

Целочисленный массив размера N: прибавить к четным числам последний элемент
Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам последний элемент....

Преобразовать массив, прибавив к четным числам последний элемент
Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам последний элемент....

Преобразовать его, прибавив к четным числам последний элемент. Прокомментировать код
помогите с комментариями к программе: Дан целочисленный массив размера N. Преобразовать его,...

Преобразовать массив, прибавив к чётным числам первый элемент. Первый и последний элементы массива не менять
дан целочисленный массив.Преобразовать его,прибавив к чётным числам первый элемент.Первый и...

Преобразовать массив, прибавив к четным числам первый элемент
Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам первый элемент....


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

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

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