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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
#1

Есть масив, нужно удалить некоторые елементы, со сдвигом - C++

19.02.2010, 19:56. Просмотров 507. Ответов 8
Метки нет (Все метки)

Есть масив, нужно удалить некоторые елементы, со сдвигом. Подскажите как можно реализовать???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2010, 19:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть масив, нужно удалить некоторые елементы, со сдвигом (C++):

нужно убрать однаковые елементы в списке(есть код програмы) только нехватает удаления однаковых елементов - C++
#include<iostream> #include<string> using namespace std; struct List1 { string a; List1 * next; }; struct...

Удалить сдвигом элементы массива - C++
Помогите пожалуйста написать программы: 3)Дан массив из 15 элементов, удалить сдвигом элементы массива, кратные 5 и расположенные между...

Удалить заданную строку и столбец матрицы со сдвигом - C++
Как удалить заданную строку a и столбец b со сдвигом, в динамическом массиве MxN заполненного рандомными числами?

Удалить из строки каждую пару символов '!?' и удалить некоторые символы - C++
помогите решить задачу, пожалуйста. используя scanf для чтения. Удалить из строки каждую пару символов '!?', подсчитать количество...

Ребят, нужно написать программу шифровки циклическим сдвигом - C++
Даны текстовые файлы. Реализовать функции шифровки и дешифровки методом циклического сдвига битов на 1 бит вправо в левом полубайте и на 1...

Нужно отсортировать одномерный масив - C++
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а затем -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
insideone
Модератор
Автор FAQ
3639 / 918 / 49
Регистрация: 10.01.2010
Сообщений: 2,469
19.02.2010, 19:59 #2
C++
1
2
3
4
5
6
7
8
9
int Pos = 0;
for (int i = 0; i < N; i++)
{
   if ( a[i] != некоторое_условие )
   {
       a[Pos] = a[i];
       Pos++;
   }
}
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 20:07  [ТС] #3
Что то невыходит!!!! Выводит тот же масив!!!!
0
insideone
Модератор
Автор FAQ
3639 / 918 / 49
Регистрация: 10.01.2010
Сообщений: 2,469
19.02.2010, 20:21 #4
Попробуйте конкретизировать ваше задание
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 20:50  [ТС] #5
Например: Есть масив 1 2 4 5 6 7 8 Мне нада удалить елементы, которые находятся в интервале [1,4]
После удаления масив должен иметь вид 5 6 7 8
0
insideone
Модератор
Автор FAQ
3639 / 918 / 49
Регистрация: 10.01.2010
Сообщений: 2,469
19.02.2010, 20:54 #6
C++
1
2
3
4
5
6
7
8
9
10
int Pos = 0;
for (int i = 0; i < N; i++)
{
   // условие для тех элементов которые надо оставить
   if ( (a[i] > 4) && (a[i] < 1) ) 
   {
       a[Pos] = a[i];
       Pos++;
   }
}
1
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.02.2010, 21:25  [ТС] #7
Спасибо за коментарий, условия перепутал!!!!!
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.02.2010, 22:56 #8
MILAN,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <functional>
 
int main()
{
    int arr[] = {1,2,3,4,5,6,7};
    const size_t N = sizeof(arr) / sizeof(*arr);
 
    std::ostream_iterator <int> O_O(std::cout," ");
    int *ptr = std::remove_if(arr, arr+N, std::bind2nd(std::greater <int> (), 5));
 
    std::copy(arr, ptr, O_O);
 
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
19.02.2010, 23:12 #9
Цитата Сообщение от insideone Посмотреть сообщение
if ( (a[i] > 4) && (a[i] < 1) )
"если a[i] больше 4 и меньше 1"?

Добавлено через 7 минут
Андрейка, так наоборот всё, что больше 5 убирает. И заголовок <iterator> пропустили. Вот чуть подправил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
 
int main()
{
        int arr[] = {1,2,3,4,5,6,7};
        const size_t N = sizeof(arr) / sizeof(*arr);
 
        std::ostream_iterator <int> O_O(std::cout," ");
        int *ptr = std::remove_if(arr, arr+N, std::bind1st(std::greater <int> (), 5));
 
        std::copy(arr, ptr, O_O);
        std::cout << std::endl;
 
        return 0;
}
Добавлено через 3 минуты
другой вариант
C++
1
int *ptr = std::remove_if(arr, arr+N, std::bind2nd(std::less <int> (), 5));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2010, 23:12
Привет! Вот еще темы с ответами:

нужно добавить в форму елементы которые есть в коде программы - Visual Basic
есть исходный код и сама exe программы. нужно сделать саму форму чтобы можно было её компилировать. VB6 Option Explicit Const Size =...

существует бинарный файл. Удалить макс и мин елементы в нем.Есть заготовки - C#
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; int main() ...

Дан масив А(5;5) заменить нулями все ее елементы на главной диагонали - Pascal
№1 Дан масив А(5;5) заменить нулями все ее елементы на главной диагонали №2 Дан масив А(5) найти количество нечетных положительных...

QueryTable копирует веб страницу не так, как мне нужно, то есть некоторые ссылки не копируются - VBA
Добрый день. QueryTable копирует веб страницу не так, как мне нужно, то есть некоторые ссылки не копируются. Когда я копирую, страницу...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.02.2010, 23:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru