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

упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
05.11.2010, 21:02     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #1
Блин вест мозг себе уже вынес, никак не могу решить задачу(((. Помогите кто чем может.
Задача:Написать подпрограмму,которая проверяла бы, упорядочен ли массив по неубыванию (Xi<=Xi+1),по невозрастанию (Xi=>Xi+1) или не упорядочен вообще. привести пример использования подпрограммы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 21:02     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще
Посмотрите здесь:

C++ Удалить из массива минимальное количество элементов, чтобы массив стал упорядочен по возрастанию
Упорядочен-ли массив по возрастанию? C++
Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет C++
Упорядочить массив по невозрастанию элементов. вывести получившийся массив C++
Проверить упорядочен ли массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egorikem
 Аватар для egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
05.11.2010, 22:02     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #2
Э... тоесть если по убыванию то пишет "по убыванию" , а по возрастанию пишет "по возрастанию" и т.д???
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
05.11.2010, 23:08  [ТС]     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #3
да именно так
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
06.11.2010, 07:03     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #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
89
90
91
92
93
94
95
96
97
98
99
/////////////////////////////////////////////////////////////////////////////////////
//Задача:Написать подпрограмму,которая проверяла бы, упорядочен ли массив 
//по неубыванию (Xi<=Xi+1),по невозрастанию (Xi=>Xi+1) или не упорядочен вообще. 
//Привести пример использования подпрограммы. 
/////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////
typedef int                 T_num;
typedef std::vector<T_num>  T_nums;
/////////////////////////////////////////////////////////////////////////////////////
void  print_orderliness_type(const T_nums&  nums)
{
    T_nums  adj_diff(nums.size());
    std::adjacent_difference(nums.begin(), nums.end(), adj_diff.begin());
 
    T_num  min_diff = *std::min_element(adj_diff.begin() + 1, adj_diff.end());
    T_num  max_diff = *std::max_element(adj_diff.begin() + 1, adj_diff.end());
 
    //неубывающий    
    bool  is_nondecreasing  = min_diff >= 0;
 
    //невозрастающий    
    bool  is_nonincreasing  = max_diff <= 0;
 
    //возрастающий    
    bool  is_increasing     = min_diff > 0;
 
    //убывающий    
    bool  is_decreasing     = max_diff < 0;
 
    std::cout << "Массив";
              
    if(    !is_nondecreasing
        && !is_nonincreasing
      )
    {
        std::cout << " неупорядоченный";
    }
    else
    {
        if(is_nondecreasing)
        {
            std::cout << " неубывающий";                      
        }
 
        if(is_nonincreasing)
        {
            std::cout << " невозрастающий";                      
        } 
 
        if(is_increasing)
        {
            std::cout << " возрастающий";                      
        }
 
        if(is_decreasing)
        {
            std::cout << " убывающий";                      
        }   
    }
}
/////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << std::endl
                  << "Введите размер массива: ";
        int n;
        std::cin >> n;
        if(n == 0)
        {
            break;
        }
        std::cout << "Введите "
                  << n
                  << " элементов массива:"
                  << std::endl;
 
        T_nums  nums(n);
        for(int i = 0; i < n; ++i)
        {
            std::cout << "a["
                      << i + 1
                      << "] = ";
 
            std::cin >> nums[i];
        }
 
        print_orderliness_type(nums);    
    }
}
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
06.11.2010, 10:18  [ТС]     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #5
а можно тоже самое написать,только с использованием scanf и printf
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.11.2010, 13:39     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #6
Цитата Сообщение от lokomot Посмотреть сообщение
а можно тоже самое написать,только с использованием scanf и printf
ты имеешь ввиду на языке С (а не С++)???
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
06.11.2010, 13:45  [ТС]     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #7
да )))
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
08.11.2010, 08:42  [ТС]     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #8
Народ пожалуйста помогите,время поджимает,напишите код на Си
Alekseyka2
11 / 11 / 1
Регистрация: 18.03.2010
Сообщений: 45
08.11.2010, 16:23     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #9
Мой первый код на Си. Написан под GCC, за отсутствие русского извнияюсь.
Если кто-то что-нибудь исправит или посоветует буду благодарен.

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
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
 
 
void outarray(int l, int *la)
{
int j;
int nevozr,neub,vozr,ub;
nevozr=neub=vozr=ub=1;
for(j=0;j<l;j++)
printf("prt[%d]: %d\n",j,la[j]);
 
for(j=0;j<l-1;j++)
{
    if(la[j]>la[j+1])
        {vozr=0; neub=0;}
    else
    {
    if(la[j]<la[j+1])
    {ub=0;nevozr=0;}
    else
    {vozr=0;ub=0;}
    }
}
 
if(ub) printf("Ubivayshii ");
if(vozr) printf("Vozrastayshii ");
if(neub) printf("neubibaushii ");
if(nevozr) printf("nevozrastaushii ");
if(!ub&&!vozr&&!neub&&!nevozr) printf("Neuporadochennii");
 
}
 
 
int main(void) {
 
int i,m,k;
int *ptr;
 
printf("Put lenght of array\n");
scanf("%d",&i);
printf("\nlengt is %d\n",i);
 
ptr=(int*)malloc(i*sizeof(int));
 
for(k=0;k<i;k++)
{
    printf("Enter ptr[%d]:",k);
    scanf("%d",&(ptr[k]));
}
printf("\n");
 
outarray(i,ptr);
 
free(ptr);
return 0;
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2010, 20:02     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще
Еще ссылки по теме:

C++ Сортировка одномерного массива по неубыванию (невозрастанию)
Проверить что массив упорядочен по невозрастанию C++

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

Или воспользуйтесь поиском по форуму:
lokomot
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 9
12.11.2010, 20:02  [ТС]     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще #10
Народ,а может у кого есть другой вариант решения,а то у меня че то она не пашит(((
Yandex
Объявления
12.11.2010, 20:02     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще
Ответ Создать тему
Опции темы

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