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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
#1

Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа - C++

19.06.2012, 13:02. Просмотров 978. Ответов 11
Метки нет (Все метки)

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

Добавлено через 8 минут
ПЛЗ.Очень надо=(

Добавлено через 10 минут
uping themes
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 13:02     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа
Посмотрите здесь:
Вывести на экран отдельно положительные элементы массива X (16) и отдельно отрицательные элементы C++
C++ Создать вторую очередь в которой будут только числа, которые нацело делятся на 2, 3, 5 одновременно
Объединить две очереди в одну, как создать две очереди C++
Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы C++
Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди C++
если в массиве положительные элементы или отрицательные элементы будут соседями C++
C++ Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
1438 / 1167 / 61
Регистрация: 21.04.2012
Сообщений: 2,436
Завершенные тесты: 3
19.06.2012, 13:05     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #2
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
#include <iostream>
#include <queue>
 
 
int main() {
   int buffer[] = {1, 2, -1, -2, 34, 43, 33, -99, 18, 55, -6, -6};
   std::queue<int> values(std::deque<int>(&buffer[0], &buffer[0] + sizeof(buffer) / sizeof(*buffer)));
   std::queue<int> positives;
   std::queue<int> negatives;
 
   while (!values.empty()) {
      if (values.front() < 0) {
         negatives.push(values.front());
      } else {
         positives.push(values.front());
      }
      values.pop();
   }
 
   std::cout << "positives:";
   while (!positives.empty()) {
      std::cout << ' ' << positives.front();
      positives.pop();
   }
   std::cout << std::endl;
 
   std::cout << "negatives:";
   while (!negatives.empty()) {
      std::cout << ' ' << negatives.front();
      negatives.pop();
   }
   std::cout << std::endl;
}
http://liveworkspace.org/code/586935...7b6e3f1240d4f3
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 13:10  [ТС]     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #3
А попроще варианта нет?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
19.06.2012, 13:11     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #4
kaznachey1993, Элементарный вариант. Или вы думаете вам тут класс очередь будут описывать?
Aesonet
23 / 23 / 1
Регистрация: 04.04.2012
Сообщений: 119
19.06.2012, 13:11     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #5
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
#include <iostream>
using namespace std;
int i,x,y;
int mass[]={-10,4,456,7,1,2,-5,-4,4,-7,-56};
int mass1[100], mass2[100];
 
void sort()
{
for (i=0;i<11;i++) //11 - Г°Г*çìåð "î÷åðåäè" Г± Г·ГЁГ±Г«Г*ìè
{if (mass[i]>=0) {mass1[x]=mass[i] ;x++;}
else { mass2[y]=mass[i];y++;}
}
cout<<"\nPologitelnie chisla:"<<endl;
for (i=0;i<x;i++) cout<<mass1[i]<<" "; 
cout<<"\nOtricatelnie chisla:"<<endl;
for (i=0;i<y;i++) cout<<mass2[i]<<" ";
cout<<endl;  
}
int main()
{cout<<"Ishodnuy masiv:"<<endl;
for (i=0;i<11;i++) cout<<mass[i]<<" ";    
sort();    
system("PAUSE"); 
return 0;
}
gray_fox
What a waste!
1438 / 1167 / 61
Регистрация: 21.04.2012
Сообщений: 2,436
Завершенные тесты: 3
19.06.2012, 13:14     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #6
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
А попроще варианта нет?
Всё задание по сути в 11-18 строках, я не знаю что там может быть проще.
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 14:08  [ТС]     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #7
Цитата Сообщение от Aesonet Посмотреть сообщение
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
#include <iostream>
using namespace std;
int i,x,y;
int mass[]={-10,4,456,7,1,2,-5,-4,4,-7,-56};
int mass1[100], mass2[100];
 
void sort()
{
for (i=0;i<11;i++) //11 - Г°Г*çìåð "î÷åðåäè" Г± Г·ГЁГ±Г«Г*ìè
{if (mass[i]>=0) {mass1[x]=mass[i] ;x++;}
else { mass2[y]=mass[i];y++;}
}
cout<<"\nPologitelnie chisla:"<<endl;
for (i=0;i<x;i++) cout<<mass1[i]<<" "; 
cout<<"\nOtricatelnie chisla:"<<endl;
for (i=0;i<y;i++) cout<<mass2[i]<<" ";
cout<<endl;  
}
int main()
{cout<<"Ishodnuy masiv:"<<endl;
for (i=0;i<11;i++) cout<<mass[i]<<" ";    
sort();    
system("PAUSE"); 
return 0;
}
Спасибо всем.Но етот код точто надо=)

Добавлено через 20 минут
А можно через STL Vector препод завалил!

Добавлено через 21 минуту
Пожалуйста надо на базе Вектора

Добавлено через 10 минут
плиз помогите!
gray_fox
What a waste!
1438 / 1167 / 61
Регистрация: 21.04.2012
Сообщений: 2,436
Завершенные тесты: 3
19.06.2012, 14:29     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #8
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
через STL Vector
можно так, например:
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
 
 
int main() {
   int buffer[] = {1, 2, -1, -2, 34, 43, 33, -99, 18, 55, -6, -6};
   std::vector<int> values(&buffer[0], &buffer[0] + sizeof(buffer) / sizeof(*buffer));
   std::vector<int> positives;
   std::vector<int> negatives;
 
   for (std::vector<int>::const_iterator it = values.begin(); it != values.end(); ++it) {
      if (*it < 0) {
         negatives.push_back(*it);
      } else {
         positives.push_back(*it);
      }
   }
 
   std::cout << "positives: ";
   std::copy(positives.begin(), positives.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
 
   std::cout << "negatives:";
   std::copy(negatives.begin(), negatives.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/0ebecb...c4b09ac7bd1e1e

Добавлено через 5 минут
Только очереди тут уже ни при чём.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
19.06.2012, 14:30     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #9
Мой вариант

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
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream> 
#include <vector>  
#include <ctime> 
#include <cstdlib>
using namespace std; 
 
int main() 
{   
    srand((unsigned) time(0));
    vector<int> vec;   
    vector<int> vec_p; 
    vector<int> vec_o; 
    
    for ( int i = 0; i < 10; i++) 
        vec.push_back(rand() % 21 - 10);  
 
    for ( int i = 0; i < 10; i++) 
        cout << vec[i] << " ";  
    cout << endl; 
 
    vector <int> ::iterator p = vec.begin();
    
    while( p != vec.end())
    { 
        if( *p >= 0) 
           vec_p.push_back(*p);  
        else  
           vec_o.push_back(*p);
        p++; 
    } 
 
     vector <int> :: iterator ptr = vec_p.begin(); 
 
    while(ptr!= vec_p.end()) 
    { 
        cout << *ptr << " "; 
        ptr++; 
    }  
 
    cout << endl;
 
    ptr = vec_o.begin();
    while( ptr!= vec_o.end()) 
    {  
        cout << *ptr << " "; 
        ptr++; 
    } 
    cout << endl;
}
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 14:31  [ТС]     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #10
Цитата Сообщение от gray_fox Посмотреть сообщение
std::vector<int> values(&buffer[0], &buffer[0] + sizeof(buffer) / sizeof(*buffer));
А что ето за строка?
gray_fox
What a waste!
1438 / 1167 / 61
Регистрация: 21.04.2012
Сообщений: 2,436
Завершенные тесты: 3
19.06.2012, 14:35     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #11
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
А что ето за строка?
Создание вектора values из массива buffer.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 14:42     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа
Еще ссылки по теме:
C++ Удалить из очереди все отрицательные числа
Удалить из очереди все отрицательные числа C++
Удалить из очереди все отрицательные числа C++
C++ Извлечь из очереди начальные элементы и вывести их значения и новые адреса начала и конца очереди
C++ Рассортировать массив на отрицательные и положительные числа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 14:42  [ТС]     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа #12
??????????

Добавлено через 4 минуты
Цитата Сообщение от gray_fox Посмотреть сообщение
Создание вектора values из массива buffer.
А амперсент!
Yandex
Объявления
19.06.2012, 14:42     Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru