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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2014, 18:14   #1
Marily
 
Регистрация: 10.01.2014
Сообщений: 9
По умолчанию Как осуществить поиск по элементам множества?

Задано 70 целых чисел из диапазона от 1 до 150. Найти количество чисел, которые кратны 5 и вывести их.
Как осуществить поиск по элементам множества?
Код:
#include "stdafx.h"
#include <iostream>
#include <set> 
#include <iterator>
#include <cstdlib>
#include <ctime>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
srand(time(NULL));
    set<int> mySet; // объявили пустое множество
 
    // добавляем элементы в множество
    for( int i = 0; i < 70; i++) {
        mySet.insert( rand() % 150 );
    }
 
    cout << "elements: ";
    copy( mySet.begin(), mySet.end(), ostream_iterator<int>(cout, " "));
	int k=70;
	cout<<"\n"<<"Kratni 5:\n";
   for ( int j=0; j<70; j++)
   {
	if( *mySet.find(j)%5!=0)
	{k--; 
	mySet.erase(j);}} 
	cout<<"nomber="<<k;
	cout << " new elements: ";
    copy( mySet.begin(), mySet.end(), ostream_iterator<int>(cout, " "));
	system("pause");
	return 0;
}
Marily вне форума Ответить с цитированием
Старый 17.05.2014, 19:13   #2
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

если у тебя практики мало по программированию не советую залезать в такие контейнеры к которым даже нельзя обратиться вот так - mySet[i]

почему ты не хочешь реализовать множество с помощью обычного одномерного статического массива? так легче.Правда
ну если тебе задали обязательно использовать этот контейнер то ошибка в :
Код:
if( *mySet.find(j)%5!=0)
приведу пример попроще аналогичный твоему - кратность пока не трогаем

Код:
 std::set<int>::iterator it;
   for ( int j=0; j<70; j++)
   {
	   it=mySet.find(j);
	 cout<<*it;
        mySet.erase(it);
   }
программа всегда будет ругаться
ты ищешь элементы которые равны значению 0 потом 1 потом 2 и т.д. до 70
вот пример:
rand задал следующую псевдослучайность - первый элемент= 0 второй= 1 третий = 4
программа даст сбой
в шаге цикла
Код:
   for (j=3; j<70; j++)
   {
	  it=mySet.find(j);
	 cout<<*it;
         mySet.erase(it);
   }
элемента со значением = 3 не существует вывести и удалить это значение программа не сможет т.к. его нет


так же и у тебя. В цикле на каком-то шаге у тебя удаляется то чего нет.
alekopoko вне форума Ответить с цитированием
Старый 17.05.2014, 19:39   #3
Marily
 
Регистрация: 10.01.2014
Сообщений: 9
По умолчанию

на данный момент программа выглядит так:
Код:
#include "stdafx.h"
#include <iostream>
#include <set> 
#include <iterator>
#include <cstdlib>
#include <ctime>
#include <functional> 
#include <algorithm>
#include <vector>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
srand(time(NULL));
    set<int> mySet; 
 
    
    for( int i = 0; i < 70; i++) {
        mySet.insert( rand() % 150 );
    }
 
    cout << "elements: ";
    copy( mySet.begin(), mySet.end(), ostream_iterator<int>(cout, " "));
	
	int num_items1 = std::count_if(mySet.begin(), mySet.end(), [](int i) {return i % 5 == 0;});
	cout<<"\n"<<"Kol Kratni 5:"<<num_items1<<"\n";
system("pause");
	return 0;
Marily вне форума Ответить с цитированием
Старый 17.05.2014, 19:39   #4
Marily
 
Регистрация: 10.01.2014
Сообщений: 9
По умолчанию

Вопрос как вывести числа кратные 5?
Marily вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как осуществить поиск и закрытие порта Jleksern Общие вопросы Delphi 3 05.12.2011 05:52
Как осуществить поиск в диапазон? Simbad Microsoft Office Word 4 25.03.2010 12:09
[Делфи] Как осуществить поиск в StringGrid... zotox Помощь студентам 3 13.07.2009 10:42
Как осуществить поиск файла *.rtf Karinka Общие вопросы Delphi 4 18.03.2009 15:35
как осуществить поиск в компоненте WebBrowser1 в delphi 7 SonClan Работа с сетью в Delphi 5 20.11.2007 12:43