Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Vasa228
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 3
#1

Разделить числа на три подмножества используя класс - C++

24.06.2014, 17:00. Просмотров 461. Ответов 3
Метки нет (Все метки)

Не работает класс

Необходимо напечатать сперва все числа из отрезка A, B, потом все числа, меньшие A, потом все числа большие B.Использовать очереди и класс.
В первой строке содержится 3 числа .
http://www.cyberforum.ru/cpp-beginners/thread357481.html
Во второй строке содержится N положительных чисел.
вход
5 488 894
921 16 973 752 344
выход
752 16 344 921 973
Не работает через класс(в выходном файле ничего), без класса все работает.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#define _CRT_SECURE_NO_WARNINGS
 
#include<queue>
#include<stack>
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
class myclass{
public: int w; int n; int a; int b;
        queue<int>q; queue<int> q1; queue<int> Q; queue<int> q2; 
        myclass()
        {
            cin >> n;
            cin >> a;
            cin >> b;
            while (cin >> w)
            {
                q.push(w); 
                q1.push(w);
                q2.push(w); 
            }
        }
        void Push(queue<int>q, queue<int> Q, int a, int b){
            while (!q.empty())
            if ((q.front() >= a) && (q.front() <= b))
            {
                Q.push(q.front()); q.pop();
            }
            else q.pop();
        }
        void Push2(queue<int> q1, int a, queue<int> Q){
            while (!q1.empty())
            if (q1.front() < a)
            {
                Q.push(q1.front()); q1.pop();
            }
            else q1.pop();
        }
        void Push3(queue<int> q2, int b, queue<int> Q){
            while (!q2.empty())
            if (q2.front() > b)
            {
                Q.push(q2.front()); q2.pop();
            }
            else q2.pop();
        }
        
        
};
 
int main(){
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    myclass r ;
    r.Push(r.q,r.Q,r.a,r.b);
    r.Push2(r.q1,r.a,r.Q);
    r.Push3(r.q2,r.b,r.Q);
    while (!(r.Q.empty()))
    {
        cout << r.Q.front(); r.Q.pop();
        cout << " "; 
    }
    return 0;
}
Добавлено через 3 часа 30 минут
Ап, Подскажите в чем ошибка ?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 17:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разделить числа на три подмножества используя класс (C++):

Возведение в степень числа за три операции,используя только умножение
Задание звучит так: не используя никакие другие арифметические операции,кроме...

Разработать программу используя класс калькулятор с полями x, y - целые числа и методы +, -, /, *) и вывода ре
Разработать программу используя класс калькулятор с полями x, y - целые числа и...

В интервале от 1 до 100, вывести все числа, кроме делящихся на три или имеющих в записи цифру три
вывести цикл от 1 до 100, так чтобы числа имеющие 3 или которые можно разделить...

Реализовать класс Goods используя для представления цены класс Money
Реализовать класс Goods (пункт 1 ), используя для представления цены класс...

Разделить символьный массив (строку в стиле Си) на три отдельных массива согласно условию
Добрый день! Есть Char. Из него нужно присвоить трем другим Char по следующему...

3
Vasa228
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 3
25.06.2014, 18:42  [ТС] #2
Хелп !!
0
Vasa228
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 3
27.06.2014, 00:53  [ТС] #3
Почему конструктор работает а функции нет ??
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2014, 01:40 #4
Лучший ответ Сообщение было отмечено Vasa228 как решение

Решение

Зачем в Push(), Push2(), Push3() что-то передаёте, если в методах работа с полями класса? Передача по значению, значит передаются копии, а изменения копий никак не влияют на оригиналы.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2014, 01:40
Привет! Вот еще темы с решениями:

Реализовать класс Money, используя класс Fraction
// реализовать класс Money используя класс Fraction #include &quot;stdafx.h&quot;...

Разделить строку на слова, используя указатели
Помогите, пожалуйста, сделать программу. Ввести произвольное предложение с...

Разделить статический массив на три динамических массива. Не могу понять, что сделал не так
Вроде все логично. Но результат не радует. #include &lt;iostream&gt; #include...

Разделить каждый элемент вектора на минимальный, используя алгоритм for_each
Есть вектор, состоящий из 100 элементов. Найти минимальный элемент вектора и с...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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