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

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

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

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

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

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

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

Добавлено через 10 минут
uping themes
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередь: Создать две новые очереди в которых будут находиться отдельно положительные и отрицательные числа (C++):

Вывести на экран отдельно положительные элементы массива X (16) и отдельно отрицательные элементы - C++
Вывести на экран отдельно положительные элементы массива X (16) и отдельно отрицательные элементы.

Объединить две очереди в одну, как создать две очереди - C++
"Объединить две очереди в одну, чередуя элементы первой и второй очереди. Основной вопрос как создать две очереди? точнее даже три, в...

Создать вторую очередь в которой будут только числа, которые нацело делятся на 2, 3, 5 одновременно - C++
Здравствуйте. Прощу помощи с заданием: "Ввести число N. Создать очередь из чисел от 0 до N. Создать вторую очередь в которой будут...

Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы - C++
Написать программу , которая вводит с клавиатуры массив из N вещественных чисел , создает два новых массива , в один из которых помещает...

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди - C++
Нужно создать очередь. Добавить элемент в очередь. Удалить элемент из очереди. Вот моё "творение". int main() { int...

Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные - C++
Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные числа из исходного набора; порядок...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 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
1
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 13:10  [ТС] #3
А попроще варианта нет?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
19.06.2012, 13:11 #4
kaznachey1993, Элементарный вариант. Или вы думаете вам тут класс очередь будут описывать?
1
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;
}
1
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
19.06.2012, 13:14 #6
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
А попроще варианта нет?
Всё задание по сути в 11-18 строках, я не знаю что там может быть проще.
1
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 минут
плиз помогите!
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 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 минут
Только очереди тут уже ни при чём.
1
David Sylva
1286 / 948 / 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;
}
0
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));
А что ето за строка?
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
19.06.2012, 14:35 #11
Цитата Сообщение от kaznachey1993 Посмотреть сообщение
А что ето за строка?
Создание вектора values из массива buffer.
0
kaznachey1993
-66 / 3 / 0
Регистрация: 24.11.2011
Сообщений: 97
19.06.2012, 14:42  [ТС] #12
??????????

Добавлено через 4 минуты
Цитата Сообщение от gray_fox Посмотреть сообщение
Создание вектора values из массива buffer.
А амперсент!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 14:42
Привет! Вот еще темы с ответами:

если в массиве положительные элементы или отрицательные элементы будут соседями - C++
очень нужна помощь! помогите пожалуйста! если в массиве a положительные элементы или отрицательные элементы будут соседями то вывести их на...

Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь - C++
Доброго времени суток. Я хотел создать на базе класса с реализацией очереди клас потомок - кольцевая очередь. Исходник: #include...

Удалить из очереди все отрицательные числа - C++
Удалить из очереди все отрицательные числа.

Удалить из очереди все отрицательные числа - C++
Создать однонаправленную очередь с числами в диапазоне от –50 до +50. После создания очереди выполнить индивидуальное задание. В конце...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2012, 14:42
Ответ Создать тему
Опции темы

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