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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2008, 17:17   #1
zven_
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 18
По умолчанию двунаправленные списки в С++

помогите пожалуйста...

Задание:
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями.

кто поможет?! заранее спасибо.
zven_ вне форума Ответить с цитированием
Старый 23.10.2008, 08:18   #2
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от zven_ Посмотреть сообщение
помогите пожалуйста...

Задание:
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями.

кто поможет?! заранее спасибо.
Код:
#include <deque>
#include <iostream>

using namespace std;

void show(deque<int>& d)
{
    deque<int>::iterator i;
    for (i = d.begin (); i != d.end (); i++)
    cout << "element "<< *i << endl;
}
void del_even_elements(deque<int>& d)
{
    deque<int>::iterator i;
    deque<int>::iterator j;

    int t;

   i=d.begin();
   j=d.end();

   while(!(i==j))
   {
    	t=*i;
    	if (!(t%2))
        {
        	d.pop_front();
            /*
            cout<<"-----------"<<endl;
            show(d);
            */
        }
        else
        {
            d.push_back(t);
            d.pop_front();
            /*
            cout<<"-----------"<<endl;
            show(d);
            */
        }
        i++;
   }
}

int main(int argc, char* argv[])
{
    int i;

    deque<int> md;
    randomize();

    for (i = 0; i <=10; i++)
    {
        //if ((n=-10+random(20)) % 2)
	md.push_front(-10+random(20));
    }

   cout<<"<<original qeque>>"<<endl;
   show(md);
   cout<<endl;

   del_even_elements(md);
   cout<<"<<without evens>>"<<endl;
   show(md);

   getchar();

   return 0;
}
NjaalkemeBit вне форума Ответить с цитированием
Старый 23.10.2008, 14:01   #3
zven_
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 18
По умолчанию

NjaalkemeBit,
Спасибо.
но программа не запускается..

две ошибки:
lab4.cpp(51) : error C2065: 'randomize' : undeclared identifier
lab4.cpp(56) : error C2065: 'random' : undeclared identifier
zven_ вне форума Ответить с цитированием
Старый 23.10.2008, 19:07   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Напиши в начале программы
Код:
#include <stdlib>
иди если не прокатит
Код:
#include <cstdlib>
Эти функции в этом файле валяются.
MaTBeu вне форума Ответить с цитированием
Старый 23.10.2008, 19:41   #5
zven_
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 18
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Напиши в начале программы
Код:
#include <stdlib>
иди если не прокатит
Код:
#include <cstdlib>
Эти функции в этом файле валяются.
1. если поставлю в начале программы #include <stdlib>
то выскакивает ошибка - lab4.cpp(1) : fatal error C1083: Cannot open include file: 'stdlib': No such file or directory
типа файл не найдет
если <stdlib.h> то возникнут две теже самые ошибки, которые я описал выше.

2.если поставлю в начале программы #include <cstdlib>
то возникнут две теже самые ошибки, которые я описал выше.
а если #include <cstdlib.h>,то то выскакивает ошибка - lab4.cpp(1) : fatal error C1083: Cannot open include file: 'stdlib': No such file or directory

странно..
zven_ вне форума Ответить с цитированием
Старый 23.10.2008, 22:12   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2zven_ функции рандомизе и рандом есть только на борландовских компилях! в микрософтском (и может еще где) юзаются rand и srand
vvviperrr вне форума Ответить с цитированием
Старый 24.10.2008, 19:35   #7
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

примерчик...с srand & rand

Код:
#include <time.h>
#include <stdlib.h>
#include <iostream.h>

int main(int argc, char* argv[])
{


	int x;
	srand(time(0)); //=Randomize()


  for (int i = 0; i <= 10; i++)
  {
  	x=(rand()%100);  //=Random(100) от 0 до 100
		cout<<x<<endl;
  }

  getchar();
  //system("pause");

	return 0;
}
NjaalkemeBit вне форума Ответить с цитированием
Старый 24.10.2008, 19:56   #8
zven_
Пользователь
 
Регистрация: 16.10.2008
Сообщений: 18
По умолчанию

Вопросик.
Код:
Код:
int main(int argc, char* argv[])
{
    int i;

    deque<int> md;
   // randomize();
	srand(time(0));

    for (i = 0; i <=10; i++)
    {		
		i=(rand()%100);
        //if ((n=-10+random(20)) % 2)
	//md.push_front(-10+random(20));
		cout<<i<<endl;
    }

   cout<<"<<original qeque>>"<<endl;
   show(md);
   cout<<endl;

   del_even_elements(md);
   cout<<"<<without evens>>"<<endl;
   show(md);

   getchar();

   return 0;
}
взял с вашего примера с srand & rand

1. вместо
Код:
randomize();
написал
Код:
	srand(time(0));
2. в цикле
Код:
 for (i = 0; i <=10; i++)
добавил
Код:
 i=(rand()%100);
убрал
Код:
 
if ((n=-10+random(20)) % 2)
md.push_front(-10+random(20));
в итоге получается што, программа запускается, показывает только <original qeque> а <without qeque> не показывает, т.к. я убрал
Код:
md.push_front(-10+random(20));
, когда напишу
Код:
 md.push_front(-10+random(20));
вылазит ошибка error C2065: 'random' : undeclared identifier
zven_ вне форума Ответить с цитированием
Старый 24.10.2008, 20:23   #9
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

ну дык ясно... очередь то пустая получаетцо...
попробуй... md.push_front(rand()%100) в for
NjaalkemeBit вне форума Ответить с цитированием
Старый 24.10.2008, 20:27   #10
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

короче вот...

Код:

int n;

for (i = 0; i <=10; i++)
    {
       n=(rand()%100);
       md.push_front(n);
    }

Последний раз редактировалось NjaalkemeBit; 24.10.2008 в 20:32. Причина: глюки
NjaalkemeBit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На списки... Neznau Паскаль, Turbo Pascal, PascalABC.NET 1 02.07.2008 19:49
Списки Вилен Общие вопросы C/C++ 3 22.05.2008 00:40
списки Влдислаав3911 Паскаль, Turbo Pascal, PascalABC.NET 5 10.05.2008 17:35
Списки AVer Паскаль, Turbo Pascal, PascalABC.NET 6 06.12.2006 23:05