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

алгоритм: заменить повторяющиеся элементы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что не правильно в функции? http://www.cyberforum.ru/cpp-beginners/thread60440.html
Я плохо прописываю функции и решил поучиться. Для примера решил написать функцию для сортировки одномерного массива по возрастанию. #include <iostream> using namespace std; const int k = 100; int sort_v(int a) //Сама функция для сортировки { int tmp, n; int i,j;
C++ Найти ближайший элемент. Написать функцию нахождения в массиве целых чисел элемента, ближайшего к значению второго фргумента типа int.. заранее благодарю http://www.cyberforum.ru/cpp-beginners/thread60430.html
C++ Вывод содержимого вектора на экран
Добрый день ! Есть задача : Объявите вектор a_vec с элементами целого типа и заполните его произвольными значениями.Предположим,что размер вектора неизвестен,однако,несмотря на это,необходимо выполнить вывод вектора на экран,объявите итератор для vector<int>.Выполните вывод содержимого вектора a_vec на экран,использую при этом операцию разыменования итератора ,а так же значение итератора...
C++ где скачать турбо с
привет! подскажите пожалуйста, где можно скачать установщик турбо с?
C++ Нужна любая полезная программа. http://www.cyberforum.ru/cpp-beginners/thread60394.html
ЛЮДИ,МНЕ НУЖНА ПРОГРАММА,АБСОЛЮТНО ЛЮБАЯ,НО ЧТОБЫ ОНА БЫЛА ПОЛЕЗНАЯ НЕ ТОЛЬКО ДЛЯ МЕНЯ,НО ДЛЯ ОКРУЖАЮЩИХ...ЕСЛИ ЕСТЬ У КОГО ГОТОВЫЕ,ТО СКИНЬтЕ ПОЖАЛУЙСТА!!!
C++ Как в int* var хранить массивы? В чем суть задания? Всем добрый день :). В задании говорится: "Создайте класс контейнера для целых чисел". Далее приводится сам класс: private: int * p; ... Вопрос мой таков. Как мне в int* p хранить массивы? Вот, например, тот же конструктор с инициализацией от массива. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.11.2009, 06:07     алгоритм: заменить повторяющиеся элементы
без доп. массивов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool fl;
for(int i1=0; i1<n; i1++)
    for(int j1=0; j1<n; j1++)
    {
        fl=false;
        for(int i2=i1; i2<n; i2++)
            for(int j2=0; j2<n; j2++)
            if(mas[i1][j1]==mas[i2][j2] && mas[i1][j1]!=0 && mas[i1][j1]!=1)
            {
                fl=true;
                mas[i2][j2]=1;
            }
        if(j2==n && i2==n && mas[i1][j1]!=1 && mas[i1][j1]!=1)
        {
            if(fl)
                mas[i1][j1]=1;
            if(!fl)
                mas[i1][j1]=0;
        }
    }
заводим переменную bool fl. В начале каждого прохода присваиваем ей false. Берем очередной элемент и сравниваем его со всеми оставшимися. Если они равны между собой и не равны 0 или 1. То очередной наш элемент пока не трогаем, а сравниваемому с ним присваиваем 1 (и fl=true). По окончании цикла анализируем fl, и на основании (менялся или не менялся fl) только теперь присваиваем нашему очередному элементу значение.
 
Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru