Другие языки программирования и технологии

Челендж на самый забавный код =) (C++ задача внутри) Не стесняемя, учавствуем.

Попалась мне задачка (сразу скажу простейшая) и решил я ее достаточно забавно (на мой взгляд) , хотелось бы посмотреть какие тараканы в голове у вас господа :-P

Надобно сочинить функцию, которая находила бы, и выводила на экран все не повторяющиеся значения в целочисленном массиве произвольной длинны.

Можно использовать вложенные функции, только в этом случае пишите их определение.
main() и прототипы можно опустить :-)
Экзотические вещи (типа инициализации локальных переменных в «старом стиле» ) приветствуются.
Не скупитесь на комменты!

Собственно все. Очень жду интересных листингов :-[
//FUCK! Писал это тут ПОЛ ЧАСА, а когда посмотрел на свой ответ - некоторые строчки оно СОЖРАЛО!
//Всё, вроди, исправил. Но переменная "и" - на русском языке.. .
#include <string>
#include <iostream>
using namespace std;
int main (void)
{
define num количество_знаков_в_оригинальном_массиве;
int a[num] = {все_значения};
int b[num];
int и=0;
int i_b=0;
while(и < num)
{
int ii = 0;
bool is = 0;
while( ii < b_i )
{
if( b[ii] == a[и] )
{
is = 1;
}
ii ++;
}
if( !is )
{
cout << b[b_i];
cout << " ";
b_i ++;
}
и++;
}
cin >> и;
return 0;
}
//Я сделал без компилятора, так что могут быть синтаксические ошибки, или баги, но идея понятна:
//создаётся массив со значениями, создаётся ещё один массив того же размера, потом создаётся
//цикл, который повторяется столько раз, сколько значений в массиве. Потом идёт ещё цикл, который
//перебирает все предыдущие значения второго массива (с уникальными значениями первого) .
//Потом, если значений таких ещё не было в массиве, то оно заносится в него, выводится на экран,
//и увеличивается счётчик второго массива, и так до конца цикла. Потом в конце предлагается ввести,
//что попало (что бы можно было увидеть выведенные значения на экран) , а при нажатии Enter
//программа выключается. Кстати, вначале вместо "количество_знаков_в_оригинальном_массиве"
//надо вписать это количество, а вместо "все_значения" вписать значения ячеек массива.
//Вот и всё)
Vugar Kerimov
Vugar Kerimov
745
Лучший ответ
Александр Наприенко Большущее спасибо за листинг! К сожалению это тривиальный вариант, который приходил в голову практически сразу. main() конечно тоже функция :-) но я имел в виду немного другое, кстати вы отступы не используете вообще,
или так получилось из-за того что половина листинга пропала и все пришлось в спешке восстанавливать?

На последок замечу что комментарии в стиле Си (/* some text */) в вашем случае были бы гораздо удобнее. Еще раз спасибо за уделенное время.
Александр Наприенко //Я так понял, что больше версий не будет, поэтому расскажу свою:

void unique (int a[], int size)

{
int i= 0;

bubbleSort(a, size); //Сортируем массив любым доступным способом

cout
я точно не скажу, но кажется в С++ как в Java есть такая замечательная вещь как Set - контейнер для хранения набора уникальных объектов.

- создаёте Set
- забрасываете туда элементы своего массива
- выводите содержимое Set (который будет содержать только уникальные, не повторяющиеся элементы)
Ruslan Yusupov Set будет содержать и повторяющиеся элементы тоже, просто в единственном экземпляре. :)
и что интересного в задачке?
обочная задачка класса для десятого

http://paste. org. ru/ ?j7qifx
не проверял, 5 минут
Ruslan Yusupov У вашего алгоритма квадратичная сложность. Думаю, если поразмыслить над более эффективным решением, то задачка станет поинтересней.
Александр Наприенко Я не говорил что задача будет интересной, мне просто хотелось посмотреть, как мыслят люди, хотелось увидеть ваш стиль и интересные решения не интересной задачи =) При этом я понимаю что время очень ценный ресурс.
пипец-мудрец.
берём первый элемент и прогоняем его по всему масиву, если нет то выводим его, если да то перескакуем на след элемент, далее второй и. т. д) может я что то непонял
Александр Наприенко Вы почти все поняли правильно. Я знаю как решать эту задачу, у меня откомпилированный листинг на полке лежит. Я хотел креатива, нестандартных решений. На крайний случай посмотреть на ваш стиль :-)