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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Интегрирование по методу Симпсона http://www.cyberforum.ru/cpp-beginners/thread186785.html
написать программу которая посчитала бы интеграл сos(x+x^3)dx по методу симпсона с точностью до одной тысячной.буду оч.благодарен)))
C++ getline по 2 раза Привет. Почему в MSVC, если написать один раз getline(std::cin, path); то ввод не происходит? приходится писать 2 раза case 9: { std::string path(""); std::cout << "Введите имя файла: "; getline(std::cin, path); getline(std::cin, path); loadUFromFile(currGeneration, ROW,COL, path); break; http://www.cyberforum.ru/cpp-beginners/thread186762.html
С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений., C++
нужно написать программку срочно(С++) ...О_опомогите пожалуйста) ВОТ УСЛОВИЕ: С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений.
Из заданной строки получить только цифры C++
В какой то строке цифры с перемешкой буквами. Из строки надо взять только цифры. Пример: dcfgvbhjn123456 Вывод: 123 456. Надо использовать указатели. Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем.
C++ Методом деления отрезков http://www.cyberforum.ru/cpp-beginners/thread186731.html
Здравствуйте ! Пытаюсь решить задачку на тему Решение нелинейных уравнений Методом деления отрезков пополам.. написал код для некоторой функции,но когда ввожу отрезки (a,b) абсолютно любые числа, значение f(x) компилятор выводит всегда 0,2 почему,никак понять не могу ? #include <iostream.h> #include <conio.h> #include <stdio.h>
C++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами 12.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) сумму элементов массива с нечетными номерами; б) сумму элементов массива, расположенных между первым и последним отрицательными элементами. Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,691
06.11.2010, 07:03     упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще
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);    
    }
}
 
Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru