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

Последовательность. элементы . - C++

Восстановить пароль Регистрация
 
daimonTM
2 / 2 / 0
Регистрация: 24.03.2010
Сообщений: 46
09.03.2011, 01:55     Последовательность. элементы . #1
Дана последовательность, расположить ее положительные элементы,
стоящие на нечетных местах по возрастанию

Последовательность задается пользователем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2011, 01:55     Последовательность. элементы .
Посмотрите здесь:

Представляют ли элементы введенного с клавиатуры массива возрастающую последовательность C++
C++ Дана последовательность x1, x2, …, xn (n<=20). Пронормировать элементы последовательности их средним значением.
Верно ли, что все элементы 1-ой последовательности входят во 2-ю последовательность C++
C++ Выяснить образуют ли элементы массива убывающую последовательность
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
C++ Проверить, образуют ли элементы массива знакочередующуюся последовательность
Образуют ли элементы ненулевого массива знакочередующуюся последовательность C++
Проверить, образуют ли элементы строк матрицы возрастающую последовательность C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
09.03.2011, 02:22     Последовательность. элементы . #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;
 
int main()
{   
    int seq[12]={-1,4,22,-8,134,21,17,-12,90,25,100,-134};
    int subseq[6], i, j, k, cur;
        
//формирование подпоследовательности из подожительных элементов на
//нечетных позициях (с точки зрения человеческой, т.е. отсчет
//от первого соответствует нулевому в массиве)
    for(i=0,k=0;i<12;i+=2)
        if(seq[i]>0)
        {   subseq[k]=seq[i];
            k++;
        }
//сортировка
    for(i=0;i<k-1;i++)
        for(j=i+1;j<k;j++)
            if(subseq[j]<subseq[i])
            {   cur=subseq[i];
                subseq[i]=subseq[j];
                subseq[j]=cur;
            }
//вывод результата
cout<<"Original sequence\n";
for(i=0;i<12;i++)
    cout<<seq[i]<<"  ";
 
cout<<"\nSorted subsequence\n";
for(i=0;i<k;i++)
    cout<<subseq[i]<<"  ";
 
cin.get();
return 0;
 }
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
09.03.2011, 13:58     Последовательность. элементы . #3
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
/////////////////////////////////////////////////////////////////////////////////////////
//Дана последовательность, расположить ее положительные элементы,
//стоящие на нечетных местах по возрастанию
//
//Последовательность задается пользователем. 
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <set>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef int                  T_num;
typedef std::vector<T_num>   T_nums;
typedef std::vector<T_num*>  T_p_nums;
typedef std::multiset<T_num> T_val_nums;
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите последовательность целых чисел разных знаков:"    
              << std::endl;
    T_nums  nums((std::istream_iterator<T_num>(std::cin)), (std::istream_iterator<T_num>()));
    
    struct  T_get_odd_positive_nums
    {
        bool        is_odd_;
        T_p_nums    p_odd_posit_nums_;        
        T_val_nums  odd_posit_nums_multiset;
        //-------------------------------------------------------------------------------
        T_get_odd_positive_nums() : is_odd_(true)
        {}
        //-------------------------------------------------------------------------------
        void  operator() (T_num&  num)
        {
            if(   is_odd_
               && num > 0)
            {
                p_odd_posit_nums_.push_back(&num);  
                odd_posit_nums_multiset.insert(num);
            }
            is_odd_ = !is_odd_;
        }
        //-------------------------------------------------------------------------------
        void  sort_odd_posit_nums_values()
        {
            T_val_nums::const_iterator  val_nums_elem_it = odd_posit_nums_multiset.begin();
            for(T_p_nums::iterator  p_num_it = p_odd_posit_nums_.begin();
                p_num_it != p_odd_posit_nums_.end(); ++p_num_it)
            {
                **p_num_it = *(val_nums_elem_it++);
            }
        }
    };
    
    std::for_each(nums.begin(), nums.end(), T_get_odd_positive_nums())
        .sort_odd_posit_nums_values();
 
    std::cout << "Введенная последовательнсть, в которой положительные элементы"
              << std::endl
              << "на нечетных местах отсортированы по возрастанию:"
              << std::endl;
    std::copy(nums.begin(), nums.end(), std::ostream_iterator<T_num>(std::cout, " "));
    std::cout << std::endl;
}
Yandex
Объявления
09.03.2011, 13:58     Последовательность. элементы .
Ответ Создать тему
Опции темы

Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru