Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для crazygor1
7 / 7 / 4
Регистрация: 06.02.2010
Сообщений: 131

Вставляем 0 элемент

17.01.2012, 15:23. Показов 2103. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Помогите пожалуйста с решением задачи:
данн массив размера N, вставить 0:
1)перед каждым 3м положительным
2)после каждого 3го положительного
3)перед каждым 4м отрицательным
4)после каждого четвертого отрицательного
Заранее спасибо!

Добавлено через 2 часа 10 минут
Помогите хотяб с 1м, остальное я по аналогии сделаю
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2012, 15:23
Ответы с готовыми решениями:

Вывести содержимое списка в следующем порядке: первый элемент, последний элемент, второй элемент, предпоследни
#include <iostream> #include <list> #include <iterator> void output(std::list<int> myList, std::list<int>::iterator iter1,...

Строки. Как найти в слове первый элемент? Второй элемент, последний элемент?
как найти в слове первый элемент?Второй элемент,последний элемент.С помощью каких операторов это делается??

Вставляем картинку в Delphi
Добрый день, Можно ли вставить картинку в свою программу, т.е фон, а на нем уже кнопки делать, надписи самой программы? Заранее...

20
 Аватар для crazygor1
7 / 7 / 4
Регистрация: 06.02.2010
Сообщений: 131
18.01.2012, 02:22  [ТС]
Студворк — интернет-сервис помощи студентам
Всем большое спасибо за помощь! Вот готовый код программы:
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
// Функтор, срабатывающий на n-том положительном элементе
// Параметры шаблона:
// - T - тип проверяемых элементов
// - N - номер положительного элемента, на котором должен сработать функтор
template<typename T, size_t N>
// Должен наследоваться от std::unary_function
class IsNthPositive : public std::unary_function<T, bool>//перед каждым 3м положительным
{
public:
    // В конструкторе счётчик обнуляется
    IsNthPositive():
    m_counter()
    {
    }
    
    // Основной оператор, проверяющий условие
    bool operator()(const T& arg)
    {
        // Если передан положительный элемент - увеличиваем счётчик
        if (T() < arg)
            ++m_counter;
        
        // Если отсчитали нужное количество элементов - обнуляём счётчик и
        // возвращаем true
        if (m_counter == N)
        {
            m_counter = 0;
            
            return true;
        }
        
        // В противном случае (насчитано элементов меньше N) возвращаем false
        return false;
    }
    
private:
    // Счётчик элементов
    size_t m_counter;
};
 
 
template<typename T, size_t N>
class IsNthNegative : public std::unary_function<T, bool>//перед каждым 4 отрицательным
{
public:
    // В конструкторе счётчик обнуляется
    IsNthNegative():
    m_counter()
    {
    }
    
    // Основной оператор, проверяющий условие
    bool operator()(const T& arg)
    {
        // Если передан отрицательный элемент - увеличиваем счётчик
        if (T() > arg)
            ++m_counter;
        
        // Если отсчитали нужное количество элементов - обнуляём счётчик и
        // возвращаем true
        if (m_counter == N)
        {
            m_counter = 0;
            
            return true;
        }
        
        // В противном случае (насчитано элементов меньше N) возвращаем false
        return false;
    }
    
private:
    // Счётчик элементов
    size_t m_counter;
};
//перед 3м положительным
int task1()
{    
    // Создаём и заполняем вектор с клавиатуры (конец ввода - Ctrl+X)
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    // Первая позиция поиска - начальный элемент вектора
    std::vector<int>::iterator pos = vec.begin();
    // До тех пор, пока не достигли конца вектора - продолжаем поиск по условию
    // и запоминаем найденную позицию
    while ((pos = std::find_if(pos, vec.end(), IsNthPositive<int, 3>())) != vec.end())
        // вставляем 0 в найденную позицию, дальнейший поиск начинаем через две
        // позиции (пропускаем вставленный элемент и следующий, поскольку
        // следующий как раз является третьим, а нам надо начать отсыёт с
        // четвёртого)
        pos = vec.insert(pos, 0) + 2;
    
    // Выводим результирующий вектор
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "  "));
    return 0;   
}
//перед 4м отрицательным
int task2()
{
     // Создаём и заполняем вектор с клавиатуры (конец ввода - Ctrl+X)
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    // Первая позиция поиска - начальный элемент вектора
    std::vector<int>::iterator pos = vec.begin();
    // До тех пор, пока не достигли конца вектора - продолжаем поиск по условию
    // и запоминаем найденную позицию
    while ((pos = std::find_if(pos, vec.end(), IsNthNegative<int, 4>())) != vec.end())
        // вставляем 0 в найденную позицию, дальнейший поиск начинаем через две
        // позиции (пропускаем вставленный элемент и следующий, поскольку
        // следующий как раз является третьим, а нам надо начать отсыёт с
        // четвёртого)
        pos = vec.insert(pos, 0) + 2;
    
    // Выводим результирующий вектор
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "  "));
    return 0;
}
//после 3го положительного
int task3()
{
     // Создаём и заполняем вектор с клавиатуры (конец ввода - Ctrl+X)
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    // Первая позиция поиска - начальный элемент вектора
    std::vector<int>::iterator pos = vec.begin();
    // До тех пор, пока не достигли конца вектора - продолжаем поиск по условию
    // и запоминаем найденную позицию
    while ((pos = std::find_if(pos, vec.end(), IsNthPositive<int, 3>())) != vec.end())
        // вставляем 0 в найденную позицию, дальнейший поиск начинаем через две
        // позиции (пропускаем вставленный элемент и следующий, поскольку
        // следующий как раз является третьим, а нам надо начать отсыёт с
        // четвёртого)
        pos = vec.insert(pos+1, 0) + 1;
    
    // Выводим результирующий вектор
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "  "));
    return 0;
}
//после 4го отрицательного
int task4()
{
     // Создаём и заполняем вектор с клавиатуры (конец ввода - Ctrl+X)
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    // Первая позиция поиска - начальный элемент вектора
    std::vector<int>::iterator pos = vec.begin();
    // До тех пор, пока не достигли конца вектора - продолжаем поиск по условию
    // и запоминаем найденную позицию
    while ((pos = std::find_if(pos, vec.end(), IsNthNegative<int, 4>())) != vec.end())
        // вставляем 0 в найденную позицию, дальнейший поиск начинаем через две
        // позиции (пропускаем вставленный элемент и следующий, поскольку
        // следующий как раз является третьим, а нам надо начать отсыёт с
        // четвёртого)
        pos = vec.insert(pos+1, 0) + 1;
    
    // Выводим результирующий вектор
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "  "));
    return 0;
}
int main()
{
    int v;
    std::cout << "1- before 3rd positive"<< std::endl;
    std::cout << "2- before 4th positive"<< std::endl;
    std::cout << "3- ufter 3rd negative"<< std::endl;
    std::cout << "4- ufter 4th negative"<< std::endl;
    std::cout << "Enter number of task: "<< std::endl;
    std::cin >> v;
    switch (v)
    {
    case 1:
        task1();
        
        break;
    
    case 2:
        task2();
        
        break;
    
    case 3:
        task3();
    
        break;
    
    case 4:
        task4();
    
        break;
    
    default:
        std::cout << "Incorrect input!" << std::endl;
    
        break;
    }    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2012, 02:22

Вставляем текстуру через SFML
Здравствуйте форумчане. Программа работает без ошибок но когда вставляю текстуру sf::Texture ozero; ...

[Mac OS][Посылка текста на сервер] Если копируем и вставляем текст из Word98 в IE5.0 for Mac -->
То в тексте записаном скриптом на сервере мы получим замен символов : ',',-,-- знаки вопросов (?).. Причем такая фигня только под IE5.0...

Определить минимальный элемент, его номер в массиве, заменить этот элемент элемент числом 1000
1. Задать массив А с помощью генератора случайных чисел положительными и отрицательными числами. Определить минимальный элемент, его номер...

В каждой строке найти минимальный элемент, и если этот элемент не равен 0, то разделить на него каждый элемент
Дана матрица А размером m*n, в каждой строке найти минимальный элемент, и если этот элемент не равен 0, то разделить на него каждый элемент...

Найти средний элемент, минимальный элемент и максимальный элемент матрицы
Здравствуйте,помогите решить задачу. Задана двумерная матрица размерностью 12x12 элементов заполненная случайными числами из диапазона ....


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru