Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 16:31   #1
druger
Пользователь
 
Регистрация: 18.09.2011
Сообщений: 31
По умолчанию Метод простого выбора[C++]

Помогите с задачей.
Дан ряд, состоящий из n элементов. Отсортировать его в порядке убывания, отбрасывая в процессе сортировки повторяющиеся элементы.
Как сделать сортировку я знаю, а вот как отбросить повторяющиеся элементы- нет
druger вне форума Ответить с цитированием
Старый 11.04.2012, 17:43   #2
ultimatet41
Форумчанин
 
Аватар для ultimatet41
 
Регистрация: 08.04.2012
Сообщений: 104
По умолчанию

создать ещё один массив или вектор смотря что вам надо, в него записываем первый элемент вашего массива, ну, а затем прогоняем каждый элемент вашего массива через него и если сравниваемый элемент равен одному элементу из созданного массива откидываем его иначе добавляем этот элемент в созданный массив. В общем как то так. Ну а потом делаем сортировку для нового массива.
ultimatet41 вне форума Ответить с цитированием
Старый 11.04.2012, 19:55   #3
druger
Пользователь
 
Регистрация: 18.09.2011
Сообщений: 31
По умолчанию

Получается мы только выкинем только те элементы, которые равны первому. Так не пойдёт
druger вне форума Ответить с цитированием
Старый 11.04.2012, 20:59   #4
ultimatet41
Форумчанин
 
Аватар для ultimatet41
 
Регистрация: 08.04.2012
Сообщений: 104
По умолчанию

Вы меня не так поняли.
В общем ниже работающий код написанный на скорую руку, то есть его можно улучшить при желании, но мне лень .
И ещё здесь нет сортировки в дальнейшем вам нужно отсортировать массив newArray;

Код:
#include <iostream>
#include <string>
using namespace std;

int main()
{
	int currentArray[] = {1, 9, 10, 1, 5, 5, 6, 6, 7, 110, 1};
	int newArray[10];
	bool b = false;
	int pos = 0;

	for (int i = 0; i <= 10; i++){

		for (int a = 0; a <= pos; a++){

			if(currentArray[i] == newArray[a]){
				b = true;
				break;
			} 
			else {
				b = false;
			}

		}

		if (!b){
			newArray[pos] = currentArray[i];
			++pos;
		}
	}

	for (int i = 0; i<pos; i++){
		cout << newArray[i] << "\n";
	}

	string waitStr;
	while (cin >> waitStr);
	return 0;
}

Последний раз редактировалось ultimatet41; 11.04.2012 в 21:03.
ultimatet41 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод квадратичного выбора (Э.Х. Фрэнд) Figushkin Помощь студентам 0 03.06.2010 23:14
проще простого lost9306 Помощь студентам 6 17.04.2010 14:45