С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 22
1

Получить новый массив из всех нечетных/четных членов последовательности по условию

20.10.2014, 18:38. Показов 1454. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральное число n и целые числа a1,...an. Если в данной последовательности ни одно положительное число не расположено после отрицательного, то получить новый массив из всех нечетных членов последовательности, иначе - из всех четных. Порядок следования чисел в обоих случаях заменяется на обратный.
КАК РЕШИТЬ на С++? Help me)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2014, 18:38
Ответы с готовыми решениями:

Найти количество четных и нечетных членов последовательности
Даны натуральные числа n, p, q, a1, a2,.....,an, причем n>=q>p>=1. Найти количество четных и...

Найти разность суммы четных и нечетных членов последовательности
КАК СОЗДАТЬ НА АССЕМБЛЕРЕ ТАКУЮ ПРОГРАММУ? Дана последовательность из 12 целых натуральных чисел. ...

Получить сумму членов последовательности, удовлетворяющих условию
Даны натуральные числа n, a1. . . , an. Получить сумму членов последовательности a1, . . . , an,...

Получить сумму всех членов последовательности
Даны натуральное число n, целые числа a1, x1, ... , xn. Если в последовательности x1, ... , xn есть...

8
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.10.2014, 18:40 2
Наработки?
0
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 22
20.10.2014, 18:57  [ТС] 3
ничего нет(( хочу чтоб мне объяснили что к чему)

Добавлено через 1 минуту
и помогли разобраться)
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
20.10.2014, 19:32 4
Natali V, <vector> проходили?

Добавлено через 32 минуты
Natali V,
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
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
int main()
{
    int n,r;
    cin >> n;
    double *a = new double[n];
   
    bool flag = false;
    for (int i = 0; i < n; i++)
    {
        cout << "Enter a[" << i << "] :";
        cin >> a[i];
    }
    for (int i = 0; i < n-1; i++)
    {
        if (a[i] != abs(a[i]) && a[i + 1] == abs(a[i + 1]))
        {
            flag = true;
        }
    }
    if (flag)
    {
        if (n / 2 == (n + 1) / 2)
        {
            r = n / 2;
        }
        else
        {
            r = n / 2+1;
        }
    }
    else
    {
        r = n / 2;
    }
    
 
    double *b = new double[r];
    cout << "r:" << r << endl;
    
        if (flag)
        {
            cout << "flag"<<endl;
            for (int i = n-1, j = 0; i >= 0; i -= 2,j++)
            {
                b[j] = a[i];
                cout << b[j] << endl;
            }
        }
        else
        {
            for (int i = n - 2, j = 0; i >0; i -= 2, j++)
            {
                b[j] = a[i];
                cout << b[j]<<endl;
            }
        }
        
    delete []a;
    delete []b;
    
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 22
20.10.2014, 20:28  [ТС] 5
нет( не проходили...

Добавлено через 27 секунд
1 курс(( практически ничего не прошли за этот месяц
0
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
20.10.2014, 20:41 6
Natali V, ну я в любом случае написал без вектора, проверяй
0
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 22
20.10.2014, 20:48  [ТС] 7
спасибо за помощь)
0
Модератор
Эксперт CЭксперт С++
5286 / 2373 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.10.2014, 21:54 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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Дано натуральное число n и целые числа a1,...an. Если в данной
// последовательности ни одно положительное число не расположено после
// отрицательного, то получить новый массив из всех нечетных членов
// последовательности, иначе - из всех четных. Порядок следования чисел
// в обоих случаях заменяется на обратный.
 
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    cout << "Enter an integer: ";
    int sourceArrSize;
    cin >> sourceArrSize;
    int * sourceArray = new int[sourceArrSize];
 
    srand(unsigned(time(0)));
 
    for (int i=0; i<sourceArrSize; ++i)
        sourceArray[i] = rand()%100 - rand()%10;
 
    cout << "\nThis is your source array:\n";
    for (int i=0; i<sourceArrSize; ++i)
        cout << sourceArray[i] << " ";
    cout << endl;
 
    int evenArrSize;
    int oddArrSize;
    
    // Выбираем подходящий размер для будущих итоговых массивов:
    if (sourceArrSize & 1)
    {
        evenArrSize = sourceArrSize/2+1;
        oddArrSize = sourceArrSize/2;
    }
    else
    {
        evenArrSize = sourceArrSize/2;
        oddArrSize = sourceArrSize/2;
    }
 
    int * evenArray = new int[evenArrSize]; // массив для отслеживания чётных чисел
    int * oddArray = new int[oddArrSize];   // массив для отслеживания нечётных чисел
 
    for (int i=0; i<sourceArrSize; ++i)
    {
        // если значение элемента отрицательное и это не последний элемент массива
        if (sourceArray[i]<0 && i<sourceArrSize)
        {   // и если следующий элемент массива отрицательный
            if (sourceArray[i+1]<0)
                continue; // перейти на новый виток цикла
            else // иначе
            {
                int add = 2;
                // пропустить в исходном массиве нечётные элементы
                // а чётные запихнуть в массив evenArray:
                for (int i=0, j=0; i<evenArrSize; ++i, j+=add)
                    evenArray[i] = sourceArray[j];
                // вывести содержимое массива в обратном порядке на экран:
                cout << "\nThis is the final array (evenArray):\n";
                for (int i=evenArrSize-1; i>=0; --i)
                    cout << evenArray[i] << " ";
                cout << endl;
 
                delete [] sourceArray;
                delete [] evenArray;
                delete [] oddArray;
                return 0;
            }
        }
 
        // если значение элемента положительное и это не последний элемент массива
        else if (sourceArray[i]>0 && i<sourceArrSize-1)
            continue; // перейти на новый виток цикла
 
        else // иначе
        {
            int add = 2;
            // пропустить в исходном массиве чётные элементы
            // а нечётные запихнуть в массив oddArray:
            for (int i=0, j=1; i<oddArrSize; ++i, j+=add)
                oddArray[i] = sourceArray[j];
            // вывести содержимое массива в обратном порядке на экран:
            cout << "\nThis is the final array (oddArray):\n";
            for (int i=oddArrSize-1; i>=0; --i)
                cout<< oddArray[i] << " ";
            cout << endl;
 
            delete [] sourceArray;
            delete [] evenArray;
            delete [] oddArray;
            return 0;
        }
    }
}
0
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 22
21.10.2014, 15:46  [ТС] 9
ого...спасибо)
0
21.10.2014, 15:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2014, 15:46
Помогаю со студенческими работами здесь

В последовательности получить сумму всех членов
Текст задачи: Даны натуральное число n, целые числа a, x_1, … , x_n. Если в последовательности...

Вычислить отдельно сумму четных и сумму нечетных членов последовательности
Добрый день! Только начал изучать этот язык и пытаюсь решить две задачи. Увы, с одной всё вообще...

Получить среднее арифметическое всех членов последовательности
Напишите пожалуйста полный код данной программы в microsoft visual studio c++ Даны...

Получить удвоеную сумму всех положительных членов последовательности
даны натуральное число n , действиетльные числа а1,....,an. Получить удвоеную сумму всех...

Получить удвоенную сумму всех положительных членов последовательности
Дано натуральное число n, действительные числа а1.....аn. Получить удвоенную сумму всех...

Получить удвоенную сумму всех положительных членов последовательности
Даны натуральное число n, действительные числа А 1,А 2, ..., Аn. Получить: удвоенную сумму всех...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru