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

Алгоритм выбора элементов, встречающихся в массиве более одного раза - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Параметры командной строки и каталог программы http://www.cyberforum.ru/cpp-beginners/thread83475.html
Здравсвуйте! Как можно получить параметры командной строки при старте проги, и как определить каталог, в котором находится прога???
C++ чтением из файла.... у меня есть два класса... один (базовый) читает строку из файла и присваивает её значение переменной этого типа второй (производный) создаёт массив таких переменных базового типа, заполняя его строчками из файла но файл почему-то не находит! почему? вот прога: #include <iostream.h> #include <string.h> #include <fstream.h> http://www.cyberforum.ru/cpp-beginners/thread83474.html
C++ решить на с++
помогите пожалуйста! Если данная последовательность не упорядочена ни по неубыванию, ни по не возрастанию, найти средние геометрическое положительных членов. Решить с помощью сортировки методом Шелла.
C++ взаимоподключение
Здравствуйте! Программируя столкнулся с такой проблемой: есть форм1 и форм2 1. В форм1 пишу #include "форм2.аш" Все ОК! 2. В форм2 пишу #include "форм1.аш" Вот тута проблемы и покатились! З.Ы.
C++ Обработка наборов однотипных данных http://www.cyberforum.ru/cpp-beginners/thread83464.html
помогите пожалуйста составить программу, которая переформирует заданную матрицу так, чтобы ее строки располагались в порядке убывания модулей разностей их максимальных и минимальных элементов.
C++ Определение члена класса Выдает ошибку типа оператор += не является членом класса Distance. ни могу понять include <iostream> using namespace std; /////////////////////////////////////////////////////////// class Distance // класс английских мер длины { private: int feet; float inches; public: подробнее

Показать сообщение отдельно
Nell
1 / 1 / 0
Регистрация: 21.12.2009
Сообщений: 41

Алгоритм выбора элементов, встречающихся в массиве более одного раза - C++

07.01.2010, 21:35. Просмотров 1322. Ответов 5
Метки (Все метки)

Задача:Дан одномерный массив А(размерностью N). Разработать алгоритм выбора элементов, встречающихся в массиве А более одного раза.
Есть примерное решение задачи, но оно неправильное.Нужно очень срочно. Чтобы получить зачет за семестр.

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
29
30
31
32
33
34
35
36
#include "stdafx.h" //здесь ошибка - [U]Unable to open include file 'stdafx.h' [/U]
#include <iostream>
using namespace std; //здесь кажется тоже ошибка -[U]Declaration syntax error[/U]
 
void main()
{
        int n;
        cout<<"Input lenth: "; //просим ввести размер массива
        cin>>n; //считываем, что ввели
        int *a=new int[n]; //захватываем память под массив
        cout<<"Please, init data: "; //просим проинициализировать элементы массива
        for(int i=0; i<n; i++) //обходим все элементы
                cin>>a[i]; //считываем текущий элемент
        bool *t=new bool[n]; //создали массив, чтобы хранить номера повторяющихся элементов
        for(int i=0; i<n; i++) //опять обходим все элементам массива
        {
                t[i]=false; //проинициализировали массив индексов по-уолчанию ("false" означает, что элемент встречается один раз)
                for(int j=i+1; j<n; j++) //вложенный цикл, необходим для сравнения одного элемента с другими, начинаем сравнение с последующего элемента, так как впередистоящие уже проверенные
                        if(a[i]==a[j]) //если элементы совпали
                        {
                                t[i]=true; //поставили метку в массив индексов ("true" означает, что элемент повторяется)
                                for(int k=0; k<i; k++) //сравниваем с предыдущими, для случая, когда элемент встречается более 2-х раз
                                        if(a[i]==a[k]) //если мы уже находили этот элемент масива ранее
                                        {
                                                t[i]=false; //отменяем метку
                                                k=i; //для того, чтобы выйти из вложенного цикла по k и не делать лишних стравнений
                                        }
                                j=n; //для того, чтобы выйти из вложенного цикла по j и не делать лишнх сравнений
                        }
        }
        //после работы цикла у нас есть массив "t", в сотором отмечены номера всех повторяющихся элементов, выведем на экран эти элементы:
        for(int i=0; i<n; i++)
                if(t[i]==true) //если элемент повторяющийся
                        cout<<a[i]<<' '; //выводим элемент и пробел после него для красоты :)
        system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru