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

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

Войти
Регистрация
Восстановить пароль
 
Dron16
3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
#1

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

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

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

Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам последний элемент. Последний элемент массива не изменять. Осуществить сдвиг влево на k позиций, где k – число нечетных элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 20:23     Рекурсивная функция. Преобразовать массив, прибавив к четным числам последний элемент
Посмотрите здесь:

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

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

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

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

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

Рекурсивная функция и массив... - C++
Меняю вопрос объясните как работать с таким вот массивом: #include<stdio.h> #include<iomanip.h> #include<conio.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 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;
}
Dron16
3 / 3 / 0
Регистрация: 03.11.2009
Сообщений: 208
19.04.2013, 21:51  [ТС]     Рекурсивная функция. Преобразовать массив, прибавив к четным числам последний элемент #3
yoghurt92, Да )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 22:34     Рекурсивная функция. Преобразовать массив, прибавив к четным числам последний элемент
Еще ссылки по теме:

Разделить стек на два по четным и нечетным числам - C++
Доброго времени суток. Моя программа основана на реализации стека. Я ввожу целочисленные значения в Stack, затем помещаю чётные числа в...

Найти общее число осадков, выпавших по четным числам месяца - C++
Известны данные о количестве осадков, выпавших за каждый день января. Найти общее число осадков, выпавших по четным числам месяца. ...

Функция next списка ссылается не на следующий элемент, а на последний - C++
после выполнения функции pbeg-&gt;next ссылается на последний элемент, а не на следующий, помогите! void addf() { FILE *f1; ...

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


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

Или воспользуйтесь поиском по форуму:
yoghurt92
374 / 345 / 22
Регистрация: 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;
}
Yandex
Объявления
19.04.2013, 22:34     Рекурсивная функция. Преобразовать массив, прибавив к четным числам последний элемент
Ответ Создать тему
Опции темы

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