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

Продублировать в массиве все положительные элементы с четными номерами - C++

Восстановить пароль Регистрация
 
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 10:50     Продублировать в массиве все положительные элементы с четными номерами #1
7.21. Дан целочисленный массив размера Н. Продублировать в нем все положительные элементы с четными номерами и удалить все отрицательные элементы с нечетными номерами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 10:50     Продублировать в массиве все положительные элементы с четными номерами
Посмотрите здесь:

Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами C++
Дан массив. Все элементы массива с четными номерами заменить на их абсолютную величину C++
Выведите все элементы массива с четными номерами C++
C++ Продублировать в массиве элементы с четными номерами
C++ Вывести вначале элементы с четными номерами, а затем с нечетными (все в порядке возрастания)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:15     Продублировать в массиве все положительные элементы с четными номерами #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <stdlib.h>
#include <vector>
 
using namespace std;
 
int main()
{
    int ArrSize(30);
    int * p_arr = new int [ArrSize];
 
    for(int i(0); i < ArrSize; ++i) //fill an array, and show it
    {
        if((i > 0) && (i % 5) == 0)
            p_arr[i] = (rand() % 50) * (-1);
        else
            p_arr[i] = rand() % 50;
        cout << p_arr[i] << ' ';
    }
    cout << endl;
 
    vector<int> int_vec;
    for(int i(0); i < ArrSize; ++i) //put need values in vector
    {
        if((i%2!= 0) && (p_arr[i] < 0))
            continue;
        else if ((i%2 == 0) && (p_arr[i] >= 0))
            int_vec.push_back(p_arr[i]);
        int_vec.push_back(p_arr[i]);
    }
 
    delete [] p_arr; //delet old array
    ArrSize = int_vec.size();
    p_arr = new int [ArrSize]; //create new array
    vector<int>::iterator iter(int_vec.begin());
 
    for (int i(0); iter != int_vec.end(); ++iter, ++i) //put need values in array
        p_arr[i] = *iter;
 
    for(int i(0); i < ArrSize; ++i)
    {
       cout << p_arr[i] << ' '; //show new array
    }
    cout << endl;
 
    return 0;
}
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:32  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #3
Спасиба!!! Но проще никак нельзя?
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:36     Продублировать в массиве все положительные элементы с четными номерами #4
это всё решение, если убрать наполнение массива и выводы...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 vector<int> int_vec;
    for(int i(0); i < ArrSize; ++i) //put need values in vector
    {
        if((i%2!= 0) && (p_arr[i] < 0))
            continue;
        else if ((i%2 == 0) && (p_arr[i] >= 0))
            int_vec.push_back(p_arr[i]);
        int_vec.push_back(p_arr[i]);
    }
 
    delete [] p_arr; //delet old array
    ArrSize = int_vec.size();
    p_arr = new int [ArrSize]; //create new array
    vector<int>::iterator iter(int_vec.begin());
 
    for (int i(0); iter != int_vec.end(); ++iter, ++i) //put need values in array
        p_arr[i] = *iter;
проще можно, но без массива, используя только вектор
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:49  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #5
А без вектора, можно?
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
21.05.2014, 12:53     Продублировать в массиве все положительные элементы с четными номерами #6
Цитата Сообщение от Евгений Буланов Посмотреть сообщение
это всё решение, если убрать наполнение массива и выводы

Не по теме:

Ещё С++ уберите.

Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:53     Продублировать в массиве все положительные элементы с четными номерами #7
Без вектора можно, но это весьма геморойно... нужно постоянно менять размер массива (удалять старый, делать новый, копировать данные) или делать два прохода, сначала считать, каков должен будет быть новый массив, потом создавать его, а вторым проходом копировать элементы
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:57  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #8
Можете сделать, очень нада?
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:58     Продублировать в массиве все положительные элементы с четными номерами #9
Сейчас запилю
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
21.05.2014, 13:01     Продублировать в массиве все положительные элементы с четными номерами #10
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
#include <iostream>
 
int main()
{
    std::cout << "Enter H: ";
    int H;
    std::cin >> H;
    int *mas = new int[H];
    int* pos = new int[];
 
    int count_1 = 0;
    std::cout << std::endl;
    for (int i = 0; i < H; ++i)
    {
        mas[i] = -10 + rand()%20;
        std::cout << " " << mas[i];
        if (mas[i] > 0 && i%2 == 0) { pos[count_1] = mas[i]; pos[count_1 + 1] = mas[i]; count_1 += 2;}
    }
    std::cout << std::endl;
    for (int i = 0; i < count_1; ++i)
        std::cout << " " << pos[i];
 
    delete []pos;
    delete []mas;
    system("pause >> null");
}
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 13:03     Продублировать в массиве все положительные элементы с четными номерами #11
С опытом не поспоришь
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:05  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #12
Спасиба большое за старания, но нада проще, мы ище даже cout не проходили.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
21.05.2014, 13:08     Продублировать в массиве все положительные элементы с четными номерами #13
Цитата Сообщение от Dima 26 Посмотреть сообщение
Спасиба большое за старания, но нада проще, мы ище даже cout не проходили.
Да что ж такое! Вы хоть С++ проходили?! Как Вы узнаете результат без cout? Может Вы перепутали предметы? Может это всё нужно было написать на листике в клеточку?

Добавлено через 1 минуту
Цитата Сообщение от Евгений Буланов Посмотреть сообщение
С опытом не поспоришь

Или это не мне было?:С
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 13:11     Продублировать в массиве все положительные элементы с четными номерами #14
Тамика, Вам

Добавлено через 17 секунд
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
#include <iostream>
#include <stdlib.h>
#include <vector>
 
using namespace std;
 
int main()
{
    int ArrSize(30);
    int * p_arr = new int [ArrSize];
 
    for(int i(0); i < ArrSize; ++i) //fill an array
    {
        if((i > 0) && (i % 5) == 0)
            p_arr[i] = (rand() % 50) * (-1);
        else
            p_arr[i] = rand() % 50;
        cout << p_arr[i] << ' ';
    }
    cout << endl;
 
    int NewSize(0);
    for(int i(0); i < ArrSize; ++i) //
    {
        if((i%2!= 0) && (p_arr[i] < 0))
            continue;
        else if ((i%2 == 0) && (p_arr[i] >= 0))
            ++NewSize;
        ++NewSize;
    }
 
    int * new_arr = new int [NewSize];     //
 
    for(int i(0), j(0); i < ArrSize; ++i) //
    {
        if((i%2!= 0) && (p_arr[i] < 0))
            continue;
        else if ((i%2 == 0) && (p_arr[i] >= 0))
        {
            new_arr[j] = p_arr[i];
            cout << new_arr[j++] << ' '; 
        }
        new_arr[j] = p_arr[i];
        cout << new_arr[j++] << ' '; 
    }
 
    
    cout << endl;
 
    return 0;
}
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:18  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #15
Одномерные масивы

Добавлено через 3 минуты
Двумерные массивы (статическое выделение памяти)
Дана матрица размера 2×Н. Получить новую матрицу, переставляя ее четверти размера Н×Н по часовой стрелке.

Добавлено через 27 секунд
помогите

Добавлено через 2 минуты
А можете зделать в С.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
21.05.2014, 13:24     Продублировать в массиве все положительные элементы с четными номерами #16
Лень.
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:27  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #17
ну сделай в С вот это:Дан целочисленный массив размера Н. Продублировать в нем все положительные элементы с четными номерами и удалить все отрицательные элементы с нечетными номерами.пожалуйста.
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:33  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #18
Ладно, может напишет тот, кому не лень.
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:34  [ТС]     Продублировать в массиве все положительные элементы с четными номерами #19
Напишіть в С програму, дуже потрібно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 13:58     Продублировать в массиве все положительные элементы с четными номерами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
21.05.2014, 13:58     Продублировать в массиве все положительные элементы с четными номерами
  #20
 Комментарий модератора 
Dima 26, пункт 5.16 Правил: один вопрос - одна тема. Пункт 1.4: пишите в первую очередь на русском языке.

Остальные, не стоит сейчас шутить по какому-либо народному вопросу.

Закрыто.
Yandex
Объявления
21.05.2014, 13:58     Продублировать в массиве все положительные элементы с четными номерами
Закрытая тема Создать тему
Опции темы

Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru