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

Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить - C++

Восстановить пароль Регистрация
 
racster
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 10
22.05.2013, 01:07     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить #1
задан одномерный массив, если в нем встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить. с помошью какой команды это можно сделать?

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
#include<iostream.h>
#include<conio.h>
#include<math.h>
 void main()
 {
 int mas[100],n=10,i,k;
  randomize();
 cout<<"Vvedite razmer massiva = " ;
 cin>>n;
 for (i=0;i<n;i++)
 {
 mas[i]=random(10);
 cout<<"mas["<<i<<"] = "<<mas[i]<<endl;
  }
  cout<<endl;
 for(i=0;i<n;i++)
  if(mas[i]==mas[i++])
   {
      тут нужно удалить 1 элемент
     }
  else
        cout<<"V massive net podryad idyshix elementov";
 for (i=0;i<n;i++)
 {
 cout<<"mas["<<i<<"] = "<<mas[i]<<endl;
  }
getch();
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 01:07     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить
Посмотрите здесь:

C++ В одномерном массиве вычислить цепочку подряд идущих элементов
удалить из каждой группы идущих подряд цифр, которой не предшествует точка, все начальные нули (кроме последнего, если за ним идет точка) C++
Из текстового файла убрать одно из двух подряд идущих одинаковых слов C++
C++ Исключение из массива подряд идущих одинаковых элементов(нужно добавить немного кода в уже готовый)
Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MyMind
24 / 24 / 7
Регистрация: 14.05.2013
Сообщений: 68
22.05.2013, 01:28     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить #2
вот, удаление элемента сдвигом массива.

C++
1
2
3
4
5
6
    for ( int i = 0; i < n-1; i++)
        if (a[i] == a[i+1]) {
            for (int j = i; j < n-1; j++)
                a[j] = a[j+1];
            n--;
        }
racster
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 10
22.05.2013, 01:51  [ТС]     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить #3
ммм. в данном случае он не удаляет те что нужно, а половина массива удаляет. а надо, чтоб только если 2 подряд одинаковых, то 1 удалить
MyMind
24 / 24 / 7
Регистрация: 14.05.2013
Сообщений: 68
22.05.2013, 02:17     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить #4
эм...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    int a[10] = {1, 2, 2, 3, 3, 5, 5, 7, 7, 9};
    int n = 10;
    for ( int i = 0; i < n-1; i++)
        if (a[i] == a[i+1]) {
            for (int j = i; j < n-1; j++)
                a[j] = a[j+1];
            n--;
            i--;
        }
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
    getch();
    return 0;
}
racster
1 / 1 / 0
Регистрация: 17.05.2013
Сообщений: 10
22.05.2013, 02:23  [ТС]     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить #5
это подходит, буду делать для массива, размерность которого будут задавать с клавиатуры)
Yandex
Объявления
22.05.2013, 02:23     Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить
Ответ Создать тему
Опции темы

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