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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
#1

Каждое второе число в массиве, которые повторяются более 2 раз, удалить - C++

21.10.2009, 20:02. Просмотров 1352. Ответов 2
Метки нет (Все метки)

На языке С написать программу. Условия:

Дан массив a[8]. Каждое второе число,которые повторяются более 2 раз, удалить.


У меня тут вопрос в алгоритме решения!

1. Найти число с повтором более 2 раз.
2. Из него отделить каждое второе.
3. Удалить каждое второе.

Т.е. мне надо составить другой массив, который содерджит элементы с повтором чисел больше чем 2 раза(опять же, для каждого числа ставить счетчик???). Второй пункт не понимаю как делать. А третий - со смещением на количество элементов - тоже не очень понятно...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2009, 20:02     Каждое второе число в массиве, которые повторяются более 2 раз, удалить
Посмотрите здесь:

C++ Определить, сколько раз каждое число используется в массиве
C++ Найти и вывести на экран все элементы, которые которые повторяются более N/2 раз
C++ Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз
C++ Пользователь вводит 8 чисел, вывести числа которые повторяются 2 или больше раз
Найти в массиве повторяющиеся элементы и подсчитать, сколько раз они повторяются C++
Удалить каждое второе слово из предложения C++
Строки. Удалить каждое второе слово C++
Задать массив из 20 целочисленных элементов и обнулить те числа которые повторяются более 2х раз C++
C++ Удалить из строки символы, которые повторяются
C++ Удалить из строки слова, которые встречаются заданное число раз (нужны комментарии)
Удалить из массива те элементы, которые повторяются несколько раз C++
C++ заменить каждое второе отрицательное число на половину максимума

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
21.10.2009, 20:09     Каждое второе число в массиве, которые повторяются более 2 раз, удалить #2
Можно создать массив из 10 элементов, который содержит количество повторений, т.е. b[0] содержит количество 0 в исходном массиве и т.д.
Потом смотреть исходный массив, и записывать значения в результат, исходя из повторения числа.

Цитата Сообщение от NastiKor Посмотреть сообщение
А третий - со смещением на количество элементов - тоже не очень понятно...
Можно без смещений и результат записывать в новый массив.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
22.10.2009, 05:48     Каждое второе число в массиве, которые повторяются более 2 раз, удалить #3
Цитата Сообщение от NastiKor Посмотреть сообщение
1. Найти число с повтором более 2 раз.
2. Из него отделить каждое второе.
3. Удалить каждое второе.
1. заменить каждый третий и более повтор числа на маркер.
2. не понятная формулировка: если число повторяеься 2 раза, то оставить одно? если три - то два, если 4 - тоже два числа оставить?
если ответы положительные, то в п.1 маркировать каждое второе появление числа
3. после п.1 и п.2 вы будете иметь массив с набором чисел и маркеров, можете создать новый размера (количество элементов - количество маркеров) или просто перебрать массив сдвигая на мето маркеров не маркированные элементы по типу
C
1
2
3
4
5
6
7
for (i=0; i<n; i++)  // перебор всего массива 
{
    if(p[i]!=temp)     // если символ не равен маркеру
    {
            p[count++]=p[i];                        
    }
}
получите уменьшенный массив и выводит его будете до тех пор пока не встретите конец или первый маркер
Удачи
Yandex
Объявления
22.10.2009, 05:48     Каждое второе число в массиве, которые повторяются более 2 раз, удалить
Ответ Создать тему
Опции темы

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