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

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

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

Author24 — интернет-сервис помощи студентам
7.21. Дан целочисленный массив размера Н. Продублировать в нем все положительные элементы с четными номерами и удалить все отрицательные элементы с нечетными номерами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2014, 10:50
Ответы с готовыми решениями:

Продублировать в массиве элементы с четными номерами
Дан массив N. Продублировать в нем элементы с четными номерами (2, 4 и т.д.). Условный оператор не...

Дан массив размера N. Продублировать в нем элементы с четными номерами (2, 4, …). Условный оператор не использовать
Дан массив размера N. Продублировать в нем элементы с четными номерами (2, 4, …). Условный оператор...

Продублировать в новом файле все элементы с нечетными номерами
С++ Дан файл целых чисел. Продублировать в новом файле все элементы с нечетными номерами.

Выведите все элементы массива с четными номерами
Дан массив целых чисел. Нумерация элементов начинается с 0. Выведите все элементы массива с четными...

19
6 / 6 / 15
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:32  [ТС] 3
Спасиба!!! Но проще никак нельзя?
0
6 / 6 / 15
Регистрация: 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;
проще можно, но без массива, используя только вектор
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:49  [ТС] 5
А без вектора, можно?
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
21.05.2014, 12:53 6
Цитата Сообщение от Евгений Буланов Посмотреть сообщение
это всё решение, если убрать наполнение массива и выводы

Не по теме:

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

0
6 / 6 / 15
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:53 7
Без вектора можно, но это весьма геморойно... нужно постоянно менять размер массива (удалять старый, делать новый, копировать данные) или делать два прохода, сначала считать, каков должен будет быть новый массив, потом создавать его, а вторым проходом копировать элементы
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 12:57  [ТС] 8
Можете сделать, очень нада?
0
6 / 6 / 15
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 12:58 9
Сейчас запилю
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
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");
}
0
6 / 6 / 15
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 13:03 11
С опытом не поспоришь
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:05  [ТС] 12
Спасиба большое за старания, но нада проще, мы ище даже cout не проходили.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
21.05.2014, 13:08 13
Цитата Сообщение от Dima 26 Посмотреть сообщение
Спасиба большое за старания, но нада проще, мы ище даже cout не проходили.
Да что ж такое! Вы хоть С++ проходили?! Как Вы узнаете результат без cout? Может Вы перепутали предметы? Может это всё нужно было написать на листике в клеточку?

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

Или это не мне было?:С
0
6 / 6 / 15
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:18  [ТС] 15
Одномерные масивы

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

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

Добавлено через 2 минуты
А можете зделать в С.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
21.05.2014, 13:24 16
Лень.
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:27  [ТС] 17
ну сделай в С вот это:Дан целочисленный массив размера Н. Продублировать в нем все положительные элементы с четными номерами и удалить все отрицательные элементы с нечетными номерами.пожалуйста.
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:33  [ТС] 18
Ладно, может напишет тот, кому не лень.
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 16
21.05.2014, 13:34  [ТС] 19
Напишіть в С програму, дуже потрібно.
0
SatanaXIII
21.05.2014, 13:58     Продублировать в массиве все положительные элементы с четными номерами
  #20
 Комментарий модератора 
Dima 26, пункт 5.16 Правил: один вопрос - одна тема. Пункт 1.4: пишите в первую очередь на русском языке.

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

Закрыто.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2014, 13:58

Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами
Всем добрый вечер!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! 1....

Удалить из статического массива все элементы с четными номерами, используя функции
1)Преподаватель попросил не забывать, что элементы массива нумеруются с нуля. Поэтому в функции...

Разделить все элементы одномерного массива с четными номерами на первый элемент
разделить все элементы одномерного массива с четными номерами на первый элемент (первый элемент...

Дан файл целых чисел. Удалить из него все элементы с четными номерами.
Помогите. Дан файл целых чисел. Удалить из него все элементы с четными номерами. Помогите сделать...


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

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