Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
#1

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

14.02.2016, 16:37. Просмотров 1312. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2016, 16:37
Ответы с готовыми решениями:

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

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

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

Сформировать два массива: в первый включить элементы с четными номерами, а во второй — с нечетными
Задан массив с количеством элементов N. Сформировать два массива: в первый...

Сформировать массивы: в первый включить элементы исходного массива с четными номерами, а во второй с нечетными
помогите решить..........Задан массив с количеством элементов N. Сформировать...

24
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
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
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 18:11  [ТС] #3
rangerx, а можно весь код, если вам не трудно пожалуйста
0
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
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");
}
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
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," "));
}
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 19:39  [ТС] #6
makfak, Выводит ошибку
0
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
14.02.2016, 19:40 #7
lolopop12, а моё решение чем не устроило?
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 19:42  [ТС] #8
Difaust, так же выводит ошибку
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
14.02.2016, 20:02 #9
lolopop12, Требуется поддержка С++11 или более.
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 20:10  [ТС] #10
makfak, а как можно ее подключить?
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
14.02.2016, 20:11 #11
lolopop12, Её не надо подключать, её надо включить в компиляторе, а как включить зависит от среды разработки.
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
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
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
14.02.2016, 20:20 #13
Цитата Сообщение от lolopop12 Посмотреть сообщение
то программа работает, но выдает неправильные результаты
Какие результаты она выдёт?
Листинг пожалуйста
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 20:30  [ТС] #14
Input N: 3
Elementy:
78 56 39
Chetnie:
56
Nechetnie:
78 39
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами


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

Добавлено через 52 секунды
Какая у вас среда разработки? Visual Studio, Code::blocks, Dev-C++, что-то другое?
0
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 20:38  [ТС] #16
makfak, а как будет правильно? Среда разработки - dev-c++ 5.11
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
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
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 20:57  [ТС] #18
Правильно?
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами

Добавлено через 1 минуту
makfak, Как в вашем коде сделать рандомные числа?
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
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
lolopop12
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 50
14.02.2016, 21:06  [ТС] #20
makfak, Простите, но он распределяет неверно на четные и нечетные

Добавлено через 1 минуту
makfak, И хотел спросить, а как возможно через массивы сделать? Боюсь ваш код для более профессиональных глаз, я только начинаю, трудно понять ваши действия)
0
14.02.2016, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2016, 21:06

Переписать в другой массив все элементы исходного массива с четными номерами, а потом с нечетными
Задано массив целых чисел А размерностью N. Переписать в новый массив целых...

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

Распечатать введенную строку, удалив из неё слова с нечетными номерами и добавив перевернутое слово к слову с четными номерами.
Распечатать введенную строку, удалив из неё слова с нечетными номерами и...


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

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

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