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

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

Войти
Регистрация
Восстановить пароль
 
Dima 26
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
#1

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

21.05.2014, 10:50. Просмотров 722. Ответов 19
Метки нет (Все метки)

7.21. Дан целочисленный массив размера Н. Продублировать в нем все положительные элементы с четными номерами и удалить все отрицательные элементы с нечетными номерами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 10:50     Продублировать в массиве все положительные элементы с четными номерами
Посмотрите здесь:
C++ Продублировать в массиве элементы с четными номерами
Выведите все элементы массива с четными номерами C++
Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами 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
А без вектора, можно?
Тамика
Котовчанин
870 / 450 / 142
Регистрация: 16.02.2010
Сообщений: 2,899
Записей в блоге: 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
Сейчас запилю
Тамика
Котовчанин
870 / 450 / 142
Регистрация: 16.02.2010
Сообщений: 2,899
Записей в блоге: 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 не проходили.
Тамика
Котовчанин
870 / 450 / 142
Регистрация: 16.02.2010
Сообщений: 2,899
Записей в блоге: 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 минуты
А можете зделать в С.
Тамика
Котовчанин
870 / 450 / 142
Регистрация: 16.02.2010
Сообщений: 2,899
Записей в блоге: 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++
В однородном массиве все отрицательные элементы увеличить на 2, а все положительные заменить на 1 C++
C++ В массиве заменить все отрицательные элементы на минимальный элемент, а все положительные – на максимальный
Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами C++

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

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

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

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

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