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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
#1

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

16.05.2011, 21:26. Просмотров 1312. Ответов 7
Метки нет (Все метки)

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

1. Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров): A2, A4, A6, …, A1, A3, A5, … .

2. В упорядоченном по убыванию массиве переставить места ми максимальный элемент и второй элемент со значением, меньшим Р.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2011, 21:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами (C++):

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

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

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

Сформировать массив, у которого вначале расположены элементы массива А с нечетными индексами, затем с четными - C++
Дан массив А(20). Найти максимальный элемент среди положительных элементов массива А и сформировать массив Р(20), у которого вначале...

Переписать в другие массивы элементы с четными/нечетными порядковыми номерами - C++
Помогите написать код для решения сей задачи, пожалуйста. Дан массив b0, b1,…, b2n-1. Написать программу построения новых ...

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

7
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
16.05.2011, 21:37 #2
1.
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
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
 
struct PrintNums : std::unary_function<int,bool>
    {
    PrintNums(bool act)
        : _act(act)
        {
        idx = 0;
        }
    bool operator() (int)
        {
        ++idx;
        return _act == true ? idx % 2 == 0 : idx % 2 != 0;
        }
    static int idx;
    bool _act;
    };
 
int PrintNums::idx;
 
int main()
    {
    const size_t N = 10;
    int A[N] = { 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10 };
    std::copy_if(A, A + N, std::ostream_iterator<int>(std::cout, " "),PrintNums(true));
    std::cout << std::endl;
    std::copy_if(A, A + N, std::ostream_iterator<int>(std::cout, " "),PrintNums(false));
    std::cout << std::endl;
    }
1
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.05.2011, 21:41 #3
Цитата Сообщение от Дмитрий12 Посмотреть сообщение
1. Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров): A2, A4, A6, …, A1, A3, A5, … .
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
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand(time(NULL));
    int *arr;
    int size,cnt=1;
    std::cout<<"Enter size of array -> ";
    std::cin>>size;
    arr = new int[size];
    std::cout<<"Array -> ";
     for(int i=0; i<size; i++)
     {
         arr[i]=rand()%99;
         std::cout<<arr[i]<<" ";
     }
    std::cout<<"\nOutput -> ";
     for(int i=0; i<size; i+=2)
     {
         std::cout<<arr[i]<<" ";
          if((i==size-2) && cnt)
          {
              i=-1;
              cnt=0;
          }
     }
     delete [] arr;
     system("pause");
     return 0;
}
1
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
16.05.2011, 22:02 #4
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
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
 
template <typename Pred>
inline
int * find_second_if(int * begin, int * end, Pred pred)
    {
    for(int _idx = 0; begin != end; ++begin)
        {
        if(pred(*begin) && ++_idx == 2)
            break;
        }
    return begin;
    }
 
int main()
    {
    const size_t N = 10;
    int A[N] = { 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10 };
    int P;
 
    std::cin >> P;
    
    std::sort(A,A + N,std::greater<int>());
    std::swap(*std::max_element(A,A + N),*find_second_if(A, A + N, std::bind2nd(std::less<int>(),P)));
    std::copy(A,A + N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    }
2
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
17.05.2011, 00:15  [ТС] #5
Цитата Сообщение от MILAN Посмотреть сообщение
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
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
 srand(time(NULL));
 int *arr;
 int size,cnt=1;
 std::cout<<"Enter size of array -> ";
 std::cin>>size;
 arr = new int[size];
 std::cout<<"Array -> ";
 for(int i=0; i<size; i++)
 {
 arr[i]=rand()%99;
 std::cout<<arr[i]<<" ";
 }
 std::cout<<"\nOutput -> ";
 for(int i=0; i<size; i+=2)
 {
 std::cout<<arr[i]<<" ";
 if((i==size-2) && cnt)
 {
 i=-1;
 cnt=0;
 }
 }
 delete [] arr;
 system("pause");
 return 0;
}
Вопрос? почему С++ ругается на эту строчку:
C++
1
for(int i=0; i<size; i+=2)
?
А когда стераю ее то работает=(О_о!!!
Вот сама ошибка: error C2374: 'i' : redefinition; multiple initialization
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.05.2011, 00:17 #6
Дмитрий12,
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 <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
 srand(time(NULL));
 int *arr;
 int size,cnt=1,i;
 std::cout<<"Enter size of array -> ";
 std::cin>>size;
 arr = new int[size];
 std::cout<<"Array -> ";
 for(i=0; i<size; i++)
 {
 arr[i]=rand()%99;
 std::cout<<arr[i]<<" ";
 }
 std::cout<<"\nOutput -> ";
 for(i=0; i<size; i+=2)
 {
 std::cout<<arr[i]<<" ";
 if((i==size-2) && cnt)
 {
 i=-1;
 cnt=0;
 }
 }
 delete [] arr;
 system("pause");
 return 0;
0
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
23.05.2011, 22:52  [ТС] #7
Цитата Сообщение от Ma3a Посмотреть сообщение
1.
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
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
 
struct PrintNums : std::unary_function<int,bool>
    {
    PrintNums(bool act)
        : _act(act)
        {
        idx = 0;
        }
    bool operator() (int)
        {
        ++idx;
        return _act == true ? idx % 2 == 0 : idx % 2 != 0;
        }
    static int idx;
    bool _act;
    };
 
int PrintNums::idx;
 
int main()
    {
    const size_t N = 10;
    int A[N] = { 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10 };
    std::copy_if(A, A + N, std::ostream_iterator<int>(std::cout, " "),PrintNums(true));
    std::cout << std::endl;
    std::copy_if(A, A + N, std::ostream_iterator<int>(std::cout, " "),PrintNums(false));
    std::cout << std::endl;
    }
Ругается на copy_if : copy_if' : undeclared identifier
0
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
23.05.2011, 23:52 #8
Дмитрий12, зависит от компилятора, видимо, у вас этой функции нет. Тогда можно заменить на самодельный вариант copy_if, что-нибудь вроде такого
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <typename InIt, typename OutIt, typename Pred>
OutIt copy_if ( InIt first, InIt last, OutIt result ,Pred pred)
    {
    while (first!=last) 
        {
        if(pred(first))
            *result++ = *first++;
        else
            ++first;
        }
    return result;
    }
Добавлено через 44 минуты
Звёздочку по невнимательности пропустил одну. Будет верно, если сделать "if(pred(*first))".
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 23:52
Привет! Вот еще темы с ответами:

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

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

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

Вывести элементы матрицы, расположенные в столбцах с нечетными номерами - C++
1. Дана матрица размера MхN. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, . . .). Вывод элементов произво- ...


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

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

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