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

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

Войти
Регистрация
Восстановить пароль
 
Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
#1

В массиве вставить нуль после первого нечетного эл - C++

25.09.2013, 18:03. Просмотров 390. Ответов 3
Метки нет (Все метки)

Дан массив целых чисел из n элементов. Вставить нуль после первого нечетного элемента и единицу перед последним четным элементом.Массив вводится с клавиатуры.
P.S. Напишите пожалуйста программу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В массиве вставить нуль после первого нечетного эл (C++):

В массиве вставить нуль после первого нечетного элемента и единицу перед последним четным элементом - C++
Используя динамические массивы, выполните следующие задания на обработку элементов одномерного массива: Дан массив целых чисел из n...

Заменить в массиве каждую группу из нечетного количества подряд идущих нулей на один нуль - C++
Здравствуйте. Изучаю c++ меньше месяца, помогите решить следующую задачу: "Дан массив с большим количеством нулевых элементов. Размер...

Вставить после каждой серии нуль - C++
Дан целочисленный массив размера N. Вставить после каждой его серии элемент с нулевым значением. Серия-группа одинаковых значений(серия...

Вставить после каждого нечетного значения массива нулевой элемент - C++
3адан целочисленный массив размера N. Вставить после каждого нечетного значения нулевой элемент. Ребята, помогите :)

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

Вставить после каждого нечетного элемента массива максимальный простой элемент этого же массива - C++
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
26.09.2013, 00:51 #2
Цитата Сообщение от Shadow121 Посмотреть сообщение
Дан массив целых чисел из n элементов. Вставить нуль после первого нечетного элемента и единицу перед последним четным элементом.Массив вводится с клавиатуры.
P.S. Напишите пожалуйста программу.
вот держите...массив из 12 элементов-что б вставить 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
#include <iostream>
using namespace std;
const int s=12;
int main()
{
    int a[s];
    int i,j;
    cout<<"Default array:\n";
    for(i = 0; i < s-2; i++) {
       a[i]=rand()%50+10;
       cout<<a[i]<<" ";
    }
    cout<<"\n";
    for(i = 0; i < s; i++) {
        if (a[i]%2!=0){
            for(j=s-1; j > i; j--)
                a[j]=a[j-1];
            a[i+1]=0;
            break;
        }
    }
    for(i = s-1; i >0; i--) {
        if (a[i]%2==0){
            for(j=s; j >=i; j--)
                a[j]=a[j-1];
            a[i-1]=1;
            break;
        }
    }
    cout<<"Fixed array:\n";
    for(i = 0; i < s; i++) {
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    system( "pause" );
}
1
Shadow121
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 42
26.09.2013, 01:17  [ТС] #3
Цитата Сообщение от newb_programmer Посмотреть сообщение
вот держите...массив из 12 элементов-что б вставить 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
#include <iostream>
using namespace std;
const int s=12;
int main()
{
    int a[s];
    int i,j;
    cout<<"Default array:\n";
    for(i = 0; i < s-2; i++) {
       a[i]=rand()%50+10;
       cout<<a[i]<<" ";
    }
    cout<<"\n";
    for(i = 0; i < s; i++) {
        if (a[i]%2!=0){
            for(j=s-1; j > i; j--)
                a[j]=a[j-1];
            a[i+1]=0;
            break;
        }
    }
    for(i = s-1; i >0; i--) {
        if (a[i]%2==0){
            for(j=s; j >=i; j--)
                a[j]=a[j-1];
            a[i-1]=1;
            break;
        }
    }
    cout<<"Fixed array:\n";
    for(i = 0; i < s; i++) {
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    system( "pause" );
}
А можно динамически. Если не сложно
0
Genn55
367 / 214 / 41
Регистрация: 26.12.2012
Сообщений: 708
28.09.2013, 02:29 #4
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <windows.h>
 
void setRand(int[],int const);
void printArr(int[], int const);
void insert(int[], int[], int const);
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(NULL));
    int N ;
    cout<<"  Введите размер массива "<<"\n";
    cin >>N;
    int *A = new int[N];
 
    setRand(A,N);
    cout<<"  Начальный массив "<<"\n\n";
    printArr(A, N);
 
    int *temp = new int[N];
    for(int i = 0; i < N; ++i)
        temp[i] = A[i];
 
    delete []A;
    N += 2;
    A = new int[N];
 
    insert(A, temp, N);
    cout<<"  Массив после вставки "<<"\n\n";
    printArr(A, N);
    cout << "\n";
    delete []A;
    delete []temp;
    return 0;
}
 
void setRand(int mas[],int const size)
{
 
    for(int i = 0; i < size; ++i)
        mas[i] = rand() % 100+1;
}
 
void printArr(int mas[], int const size)
{
    for(int i = 0; i < size; ++i)
        cout << setw(4) << mas[i];
   cout << "\n";
}
void insert(int mas[], int temp[], int const size)
{
    int index_i = 0;
    for(int i = 0; i < size; ++i)
    {
        mas[i] = temp[i];
 
        if(temp[i] & 1)
        {
            index_i = ++i;
            mas[index_i] = 0;
            break;
        }
    }
 
    int index_j = index_i + 1;
 
    for(int j = size - 1; j > index_i; --j)
    {
        mas[j] = temp[j - 2];
 
        if(!(temp[j - 2] % 2))
        {
            index_j = --j;
            mas[index_j] = 1;
            break;
        }
    }
 
    for(int i = index_i; i < index_j - 1; ++i)
        mas[i + 1] = temp[i];
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2013, 02:29
Привет! Вот еще темы с ответами:

После каждого нечетного элемента массива вставить максимальный простой элемент этого же массива - C++
ЗАДАЧА 1. В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива....

Вставить копию первого элемента массива после наибольшего - C++
Вставить копию первого элемента массива после наибольшего

Вставить элемент массива после первого чётного элемента - C++
Здравствуйте! Прошу прощения за вполне возможно весьма банальный вопрос, но вот возникла такая трудность: предположим, что у нас...

Вставить новый элемент в массив после первого положительного - C++
В одномерном массиве, элементы которого целые числа, произвести следующие действия:вставить новый элемент после первого положительного ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.09.2013, 02:29
Ответ Создать тему
Опции темы

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