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

Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ просьба проверить http://www.cyberforum.ru/cpp-beginners/thread399494.html
Задача: создать структуру "видеомагазин" с элементами название, режиссер, рейтинг, цена. Реализовать поиск фильма по любому из элементов. Код: #include <cstdlib> #include <iostream> #include <conio.h> #include <string.h> #include <vector> using namespace std;
C++ Динамическое выделение памяти(параллельное программирование). У меня задание: Коллективные операции. Головная машина построчно загружает с консоли квадратную матрицу. Пусть для простоты размерность матрицы кратна числу машин. Головная машина раздает матрицу всем машинам в коллективе (каждой – свое подмножество строк). Реализовать транспонирование уже распределенной матрицы. Вот моя программа. #include "mpi.h" #include <stdio.h> #include<stdlib.h>... http://www.cyberforum.ru/cpp-beginners/thread399491.html
C++ [C++] Написать мне 5 программ
1. Разработать две программы. Первая принимает от пользователя два значения времени – строки вида ЦЦ.ЦЦ.ЦЦ, где Ц – это любая цифра из диапазона . Далее она вычисляет полное количество секунд, прошедших между двумя значениями времени, и выводит его на экран. Вторая программа запускает первую в качестве вновь созданного процесса. 2. Разработать программу для вычисления полного количества...
C++ cin.getline() не выполняется
В коде ниже не выполняется cin.getline(), просто пропускает и начинает выполнять следующую строку (0.png то что получается). form z; // структура cout<<"Number: "; cin>>(z.NUM); cout<<"FIO: "; cin.getline(z.FIO,15); cout<<"DATE: "; cin>>(z.DATE); cout<<"SEX m/f: ";
C++ Программа, вычисляющая размер памяти, отводимой под символ http://www.cyberforum.ru/cpp-beginners/thread399473.html
Написать программу, вычисляющую размер памяти, отводимой под символ \а (звуковой сигнал). какой тип для этого нужно использовать (int, char, float,double и т.д.)?
C++ Уточнение по коду Что возвращает эта строка, если массивы double значений: s = s | s]; Добавлено через 1 час 8 минут Я прошу это уже 3 дня, что, даже модераторы не могут обьяснить подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.12.2011, 15:38     Дан массив действительных чисел. Удалить все фрагменты массива, которые образуют возрастающую последовательность.
Вот вам библиотека. Удаление возрастающих последовательностей сделайте сами.

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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <limits>
#include <cstdlib>
#include <ctime>
 
template<typename T>
T random(T lower = std::numeric_limits<T>::min(), T upper = std::numeric_limits<T>::max())
{
    return static_cast<T>(lower + (upper - lower) * (static_cast<double>(rand()) / RAND_MAX));
}
 
template<typename T>
T *allocate(size_t size)
{
    return new T [size]();
}
 
template<typename T>
void release(T *arr)
{
    delete [] arr;
}
 
template<typename T>
void reallocate(T *&arr, size_t new_size)
{
    T *new_arr = allocate<T>(new_size);
 
    for (size_t i = 0; i < new_size; ++i)
        new_arr[i] = arr[i];
 
    release(arr);
 
    arr = new_arr;
}
 
template<typename T>
T *create_array(size_t size, T lower = std::numeric_limits<T>::min(), T upper = std::numeric_limits<T>::max())
{
    T *arr = allocate<T>(size);
 
    for (size_t i = 0; i < size; ++i)
        arr[i] = random(lower, upper);
    
    return arr;
}
 
template<typename T>
void delete_array(T *arr)
{
    release(arr);
}
 
template<typename T>
void print_array(const T *arr, size_t size)
{
    for (size_t i = 0; i < size; ++i)
        std::cout << arr[i] << "  ";
 
    std::cout << std::endl;
}
 
template<typename T>
bool array_insert(T *&arr, size_t size, size_t pos, const T &value)
{
    if (pos > size)
        return false;
 
    reallocate(arr, size + 1);
 
    for (size_t i = size; i > pos; --i)
        arr[i] = arr[i - 1];
 
    arr[pos] = value;
 
    return true;
}
 
template<typename T>
bool array_insert(T *&arr, size_t size, size_t pos, T *insert_arr, size_t insert_size)
{
    if (pos > size)
        return false;
 
    reallocate(arr, size + insert_size);
 
    for (size_t i = size + insert_size - 1; i > pos + insert_size; --i)
        arr[i] = arr[i - insert_size];
 
    for (size_t i = 0; i < insert_size; ++i)
        arr[i + pos] = insert_arr[i];
 
    return true;
}
 
template<typename T>
void array_push_back(T *&arr, size_t size, const T &value)
{
    array_insert(arr, size, size, value);
}
 
template<typename T>
void array_push_back(T *&arr, size_t size, T *insert_arr, size_t insert_size)
{
    array_insert(arr, size, size, insert_arr, insert_size);
}
 
template<typename T>
bool array_erase(T *&arr, size_t size, size_t pos1, size_t count)
{
    size_t pos2 = count + pos1 - 1;
 
    if (pos1 >= size || pos2 >= size)
        return false;
 
    size_t diff = pos2 - pos1 + 1;
 
    for (size_t i = pos1; i < size - diff; ++i)
        arr[i] = arr[i + diff];
 
    reallocate(arr, size - diff);
 
    return true;
}
 
template<typename T>
bool array_erase(T *&arr, size_t size, size_t pos)
{
    return array_erase(arr, size, pos, 1);
}
 
Текущее время: 20:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru