0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
1

Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами

14.02.2016, 16:37. Показов 8994. Ответов 24
Метки нет (Все метки)

Дан массив А размера N.Вывести вначале его элементы с четными номерами(в порядке возрастания номеров),а затем-элементы с нечетными номерами(также в порядке возрастания номеров):
A2,A4,A6,...,A1,A3,A5,... .
Условный оператор не использовать.

Добавлено через 1 час 12 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program chetn;
var
A:array [1..100] of integer;
N, i:integer;
begin
write('kol-vo elementov:');
readln(N);
writeln('elementy:');
for i:=1 to N do
read(A[i]);
writeln('chetnie elementy');
for i:=1 to N do
begin
i:=i+1;
write(A[i], ' ');
end;
readln;
readln;
end.
Вот, осталось перевести на c++. Помогите пожалуйста
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2016, 16:37
Ответы с готовыми решениями:

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

Вывести сначала элементы массива с четными номерами, а потом - с нечетными
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания...

Одномерный массив. Вывести его элементы сначала с четными, потом нечетными номерами
Дан целочисленный массив A размера N.переписать в новый массив В того же размера вначале все...

Вывести вначале элементы с четными номерами, а затем с нечетными (все в порядке возрастания)
Здравствуйте, ув. програмисты.. Раньше меня этот форум выручал, и сейчас надеюсь выручит... Я уже...

24
2017 / 1616 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.02.2016, 18:04 2
C++
1
2
for (int i = 1; i < n; i += 2) // выводим чётные
for (int i = 0; i < n; i += 2) // выводим нечётные
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 18:11  [ТС] 3
rangerx, а можно весь код, если вам не трудно пожалуйста
0
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
14.02.2016, 18:45 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
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <string>
#include <time.h>
 
 using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Input N: ";
     int n;
    cin >> n;
    int* arr = new int[n];
    srand(time(NULL));
    cout << "Elementy: \n";
    for(int i =0;i<n;i++)
    {
        arr[i] = 1 + rand()%(100-1);
        cout << arr[i]<<" ";
    }
    cout << "\nChetnie: \n";
    for (int i = 1; i < n; i += 2) cout << arr[i]<<" "; // выводим чётные
    cout << "\n";
    cout << "Nechetnie: \n";
    for (int i = 0; i < n; i += 2) cout<< arr[i]<<" "; // выводим нечётные
 
    system("pause");
}
1
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 18:53 5
Цитата Сообщение от lolopop12 Посмотреть сообщение
Дан массив А размера N.Вывести вначале его элементы с четными номерами(в порядке возрастания номеров),а затем-элементы с нечетными номерами(также в порядке возрастания номеров):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <iterator>
#include <array>
#include <algorithm>
using namespace std;
 
int main()
{
    const int n = 10;
    array<int,n> arr = {1,2,3,4,5,6,7,8,9,1};
    int i = 0;
    stable_partition(arr.begin(),arr.end(),[&i] (int n) {
        ++i;
        return !((i-1) % 2);
    });
    copy(arr.begin(),arr.end(),ostream_iterator<int>(cout," "));
}
1
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 19:39  [ТС] 6
makfak, Выводит ошибку
0
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
14.02.2016, 19:40 7
lolopop12, а моё решение чем не устроило?
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 19:42  [ТС] 8
Difaust, так же выводит ошибку
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 20:02 9
lolopop12, Требуется поддержка С++11 или более.
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 20:10  [ТС] 10
makfak, а как можно ее подключить?
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 20:11 11
lolopop12, Её не надо подключать, её надо включить в компиляторе, а как включить зависит от среды разработки.
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 20:16  [ТС] 12
Difaust, если убрать
C++
1
#include "stdafx.h
и если заменить
C++
1
int _tmain(int argc, _TCHAR* argv[])
на просто
C++
1
int main()
то программа работает, но выдает неправильные результаты
0
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
14.02.2016, 20:20 13
Цитата Сообщение от lolopop12 Посмотреть сообщение
то программа работает, но выдает неправильные результаты
Какие результаты она выдёт?
Листинг пожалуйста
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 20:30  [ТС] 14
Input N: 3
Elementy:
78 56 39
Chetnie:
56
Nechetnie:
78 39
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами


Добавлено через 4 минуты
makfak, Вы не подскажите, как именно ее включить, если не трудно. Я чайник в этом деле, начинающий только
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 20:32 15
lolopop12, У вас даже пример не правильный, значения в массиве начинаются с 0, получается:
78 56 39
Chetnie: 78 39
Nechetnie: 56

Добавлено через 52 секунды
Какая у вас среда разработки? Visual Studio, Code::blocks, Dev-C++, что-то другое?
0
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 20:38  [ТС] 16
makfak, а как будет правильно? Среда разработки - dev-c++ 5.11
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 20:48 17
lolopop12, Заходите в настройки компилятора->там в поле для ввода текста пишете -std=c++0x, чуть выше этого поля ставите галочку, там написано "Use..."(не помню), если не разберетесь, то скиньте скрин настроек.
а как будет правильно?
Input N: 3
Elementy:
78 56 39
Chetnie:
78 39
Nechetnie:
56
Доработанный код
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
#include <iostream>
#include <iterator>
#include <array>
#include <algorithm>
using namespace std;
 
int main()
{
    const int n = 3;
    array<int,n> arr = {78,56,39};
    cout << "Input element: " << n << endl << "Elements: ";
    copy(arr.begin(),arr.end(),ostream_iterator<int>(cout," "));
    int i = 0;
    stable_partition(arr.begin(),arr.end(),[&i] (int n) {
        ++i;
        return !((i-1) % 2);
    });
    i = 0;
    auto pos = find_if(arr.begin(),arr.end(),[&i] (int n) {
        ++i;
        return (i-1) % 2;
    });
    cout << endl << "Even: ";
    copy(arr.begin(),next(pos),ostream_iterator<int>(cout," "));
    cout << endl << "odd: ";
    copy(next(pos),arr.end(),ostream_iterator<int>(cout," "));
}
1
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 20:57  [ТС] 18
Правильно?
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами

Добавлено через 1 минуту
makfak, Как в вашем коде сделать рандомные числа?
0
Любитель чаепитий
3732 / 1791 / 562
Регистрация: 24.08.2014
Сообщений: 5,992
Записей в блоге: 1
14.02.2016, 21:00 19
lolopop12, Правильно.

Добавлено через 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
#include <iostream>
#include <iterator>
#include <array>
#include <algorithm>
#include <random>
#include <ctime>
using namespace std;
 
int main()
{
    const int n = 3;
    array<int,n> arr;
    static mt19937 gen(time(nullptr));
    uniform_int_distribution<> dist(-100,100); // диапозон
    for_each(arr.begin(),arr.end(),[&dist,&gen](int& n) {
        n = dist(gen);
    });
    cout << "Input element: " << n << endl << "Elements: ";
    copy(arr.begin(),arr.end(),ostream_iterator<int>(cout," "));
    int i = 0;
    stable_partition(arr.begin(),arr.end(),[&i] (int n) {
        ++i;
        return !((i-1) % 2);
    });
    i = 0;
    auto pos = find_if(arr.begin(),arr.end(),[&i] (int n) {
        ++i;
        return (i-1) % 2;
    });
    cout << endl << "Even: ";
    copy(arr.begin(),next(pos),ostream_iterator<int>(cout," "));
    cout << endl << "odd: ";
    copy(next(pos),arr.end(),ostream_iterator<int>(cout," "));
}
1
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 56
14.02.2016, 21:06  [ТС] 20
makfak, Простите, но он распределяет неверно на четные и нечетные

Добавлено через 1 минуту
makfak, И хотел спросить, а как возможно через массивы сделать? Боюсь ваш код для более профессиональных глаз, я только начинаю, трудно понять ваши действия)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2016, 21:06
Помогаю со студенческими работами здесь

Переставить элементы массива X с нечетными номерами в начало массива Y в том же порядке, затем элементы с четными номера
Здравствуйте, не могу создать массив Y по заданию.Ниже будет код массива X. Задание...

Вывести элементы заданного массива с нечётными номерами и чётными значениями
Задан массив с количеством элементов N. Вывести элементы с нечетными номерами, являющиеся четными.

Переписать в новый целочисленный массив того же размера вначале все элементы с четными номерами, а затем - с нечетными
Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B того же размера...

Вывести сначала элементы массива с четными номерами, а затем - элементы с нечетными номерами
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru