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

Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Crafticea
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 36
19.04.2013, 11:07     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #1
Всем здрасьте. Нужно из массива, вводимый с клавиатуры, исключить подряд идущие одинаковые элементы. Есть идея, что можно сделать с помощью счетчика и перевода оставшихся элементов в другой массив, но оформить не могу( Может кто помочь? готов даже вечерком накинуть денюжки на телефон)

Добавлено через 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
#include <cstdio>
#include <conio.h>
#include <cmath>
int main()
{
    int i, n, count;
    const int N(n);
    double A[N];
printf("Vvedite kol-vo strok matricy:\n");
scanf("%d",&n);
for (i = 0; i < n; ++i)
     {
          printf("Введите элемент матрицы A[%d]: ", i);
          scanf("%lf", &A[i]);
     }
for (i = 0; i < n; ++i)
{
     printf("[");
     printf("%0.2f", A[i]);
     printf("]");
     }
for (i = 1; i < n; ++i)
    {
      count = 1;
         if (i = (i+1))
               count++;
         for (i = 1; i < n; ++i)
         {
             if (//Здесь надо проверить третий элемент, если он равен второму, то счетчик на 1 прибавляется
                 // и дальше идет проверка четвертого массива и так далее
                )
                    count++;
              else
              //Сюда нужно вставить код, для удаления этих элементов
              //и потом должна идти проверка дальше по массиву начиная с 28 строки снова
    }
    }
printf(//здесь надо вывести готовую матрицу, без последовательностей с одинаковыми элементами);
     getch();
     return 0;
   }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 11:07     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый)
Посмотрите здесь:

Найти наименьшее количество одинаковых, идущих подряд элементов C++
Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить C++
Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. C++
C++ Определить максимальное количество одинаковых символов, идущих подряд
Найти в массиве наибольшее число подряд идущих одинаковых элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
19.04.2013, 11:15     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #2
Создайте два масива. Пройдитесь по начальному и проверьте:
- если текущий елемент равен предыдущему continue, если нет записывай во второй.
Crafticea
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 36
19.04.2013, 11:21  [ТС]     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #3
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Создайте два масива. Пройдитесь по начальному и проверьте:
- если текущий елемент равен предыдущему continue, если нет записывай во второй.
Про это думал, но я незнаю команд для перевода и если таким методом поступить, то получится так?:
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
#include <cstdio>
#include <conio.h>
#include <cmath>
 
// размеры матрицы в виде констант
 
// теперь выполним ввод ее значений,
// естественно, в цикле, вернее, в двух
 
int main()
{
    int i, n;
    const int N(n);
    double A[N];
printf("Vvedite kol-vo strok matricy:\n");
scanf("%d",&n);
for (i = 0; i < n; ++i)
     {
          printf("Введите элемент матрицы A[%d]: ", i);
          scanf("%lf", &A[i]);
     }
for (i = 0; i < n; ++i)
{
     printf("[");
     printf("%0.2f", A[i]);
     printf("]");
     }
for (i = 1; i < n; ++i)
    {
         if (i = (i+1))
               count++;
         else
             //Сюда нужно вставить код, для перемещения элемента в другой массив
printf(//Новый массив);
     getch();
     return 0;
   }
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 1
19.04.2013, 11:24     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #4
Цитата Сообщение от Crafticea Посмотреть сообщение
Нужно из массива, вводимый с клавиатуры, исключить подряд идущие одинаковые элементы.
std::unique в помощь
Crafticea
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 36
19.04.2013, 11:27  [ТС]     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #5
Цитата Сообщение от Croessmah Посмотреть сообщение
std::unique в помощь
Спасибо, попробую, а код во втором посте правильно построен в цикле for?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 1
19.04.2013, 11:29     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый) #6
C++
1
if (i = (i+1))
Внимание на условие!!!
Yandex
Объявления
19.04.2013, 11:29     Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый)
Ответ Создать тему
Опции темы

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