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

Определить, в которой из двух очередей больше согласных букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива http://www.cyberforum.ru/cpp-beginners/thread845114.html
Привет. При сортировки массива ( нулевые элементы необходимо переместить в конец массива), в место первого ноля выдает число 65537. Подскажите в чем проблема и как можно ее исправить? Если необходим код, могу его добавить
C++ Ребят Незнаю что делать при запуске на компилирование выдает ошибку.Кто понимает что не так скажите а если не затруднит исправьте ошибку Разговаривал с двумя преподами говорят что проект не правильно создавал,хотя все правильно из группы спрашивал у парней говорят что не знают что не так #include ”stdafx.h” #include ”iostream” #include “locale” using namespace std; int _tmain(int argc, _TCHAR* argv) http://www.cyberforum.ru/cpp-beginners/thread845096.html
C++ Память для двумерного массива
Доброго времени суток. Нужно сделать программу, где для двумерного массива выделяется память, при условии что malloc вызывается 1 раз.
C++ Строки С++. В строке после каждого слова вставить запятую
В строке после каждого слова вставить запятую. написал вот так что если пробел то ставим вместо него запятую мне сказали что не правильно а как правильно сделать нужно подскажите? int main () { setlocale(0,""); char s; cin.getline(s, 256); // вводим строку for(int i = 0; i < strlen(s); i++) { if(s==' ')
C++ Составить регулярное выражение http://www.cyberforum.ru/cpp-beginners/thread845039.html
Нужно составить регулярку: проверить является ли строка индентификатором в C++ длиной не более 33 символов. Считается что индентификатор состоит из английских букв, цифр и символов "_", причем первым символом может быть либо буква либо подчеркивание.
C++ Работа с оператором Switch case В общем такая ситуация. Надо написать что-то типо магазина и при выборе товара он должен переносить его цену в переменную и предложить дальше выбор, если еще что-то выбрал то прибавлять ее к тому же числу. Столкнулся с проблемой, что он не складывает, а просто выписывает цены товаров в столбик код свитча такой, подскажите решение проблемы.: int a; int b=0; int c=0; cin>>a; switch(a){... подробнее

Показать сообщение отдельно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.04.2013, 20:52     Определить, в которой из двух очередей больше согласных букв
Student_123, ну как-то так)

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#include <iostream>
#include <string>
#include <queue>
#include <algorithm>
#include <iterator>
#include <vector>
 
//перегруженный оператор ввода
template<typename T>
std::istream& operator>>(std::istream& ist, std::queue<T>& queue)
{
    T temp;     //промежуточная переменная (символ)
    typename std::queue<T>::size_type queuesize = 5,    //размер очереди
        i;
 
    for(i = 0; i < queuesize; ++i)          
    {
        std::cout << "Enter the symbol: "; 
            ist >> temp;                        //вводим символ
        queue.push(temp);                       //ставим в очередь
    }
 
    return ist;             //для связывания операции ввода
}
 
//перегруженный оператор вывода
template<typename T>
std::ostream& operator<<(std::ostream& ost, std::queue<T>& queue)
{
    typename std::queue<T>::size_type queuesize = queue.size(), //размер очереди
        i;
 
    for(i = 0; i < queuesize; ++i)
    {
        ost << queue.front() << std::endl;      //выводим первый
        queue.push(queue.front());              //добавляем первый в конец
        queue.pop();                            //удаляем первый
    }
 
    return ost;         //для связывания операции вывода
}
 
int main() 
{ 
    std::string str("bcdfghjklmnpqrstvwxz");        //строка с согласными буквами
    std::queue<char> coll1, coll2, coll3;           //три очереди
 
    std::cout << "Enter first queue: \n";
    std::cin >> coll1;                          //вводим очередь 1
 
    std::cout << "\nEnter second queue: \n";
    std::cin >> coll2;                          //вводим очередь 2
 
    std::cout << "\nFirst queue: \n";
    std::cout << coll1;                         //выводим очередь 1
 
    std::cout << "\nSecond queue: \n";
    std::cout << coll2;                         //выводим очередь 2
 
    //считаем кол-во согласных
    int count1 = std::count_if(&coll1.front(), &coll1.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }),
 
    //считаем кол-во согласных
    count2 = std::count_if(&coll2.front(), &coll2.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }); 
 
    //ну тут понятно
    if(count1 > count2)
        std::cout << "\nIn the first queue is more consonant!\n";
    else
        std::cout << "\nIn the second queue is more consonant!\n";
 
    std::queue<char>::size_type size1(coll1.size()), size2(coll2.size()), i, j;
 
    bool flag;
    //записывем что не вошло в воторую очередь в третью
    for(i = 0; i < size1; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll1.front() == coll2.front()){
                flag = false;
                break;
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        if(flag){
            if(coll1.front() != coll2.front()){
                coll3.push(coll1.front());
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        coll1.push(coll1.front());
        coll1.pop();
    }
 
    //записывем что не вошло в первую очередь в третью
    for(i = 0; i < size2; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll2.front() == coll1.front()){
                flag = false;
                break;
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        if(flag){
            if(coll2.front() != coll1.front()){
                coll3.push(coll2.front());
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        coll2.push(coll2.front());
        coll2.pop();
    }
 
    std::cout << "\nThird queue: \n";
    std::cout << coll3;                 //выводим очередь 3
 
    //очищаем очереди
    while(!coll1.empty()){
        coll1.pop();
    }
 
    while(!coll2.empty()){
        coll2.pop();
    }
 
    while(!coll3.empty()){
        coll3.pop();
    }
 
    std::cout << "\n\n";
    return 0; 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru