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

Дана очередь на n элементов - вывести в порядке возрастание элементы, которые кратны 2,3,5 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ostringstream out http://www.cyberforum.ru/cpp-beginners/thread904247.html
Что означат "ostringstream out;" ? и "out<<ans;" ?
C++ Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., XV);С++ плииииз! http://www.cyberforum.ru/cpp-beginners/thread904245.html
C++ чтобы каждое слово начиналось с большой буквы
Дано предложение на латинском языке.Превратить строку так, чтобы каждое слово начиналось с большой буквы
Дан текст, состоящий из предложений, разделяемых точками C++
Дан текст, состоящий из предложений, разделяемых точками. Нужно написать программу, производящую следующее форматирование: после каждой точки в конце предложения должен стоять хотя бы один пробел; первое слово в предложении должно начинаться с прописной буквы. Текст может быть как на русском, так и на английском.
C++ С Паскаля на С++ http://www.cyberforum.ru/cpp-beginners/thread904214.html
program Matrix25; var MAx,Sum,num,j,i,M,N:integer; a: array of integer; begin // Ввод данных writeln('Введите числа M (M<=10) и N (N<=10)'); read(M); readln(N); writeln('Введите по ',N,' элементов '); for i:=1 to M do begin
C++ определить количество слов Дано предложение, определить количество слов в нем. подробнее

Показать сообщение отдельно
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
17.06.2013, 18:05  [ТС]     Дана очередь на n элементов - вывести в порядке возрастание элементы, которые кратны 2,3,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
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue <int> q;int i=0,n;
    cout << "Enter number = ";cin >> n;
    while (i!=n)                                    //создаем чергу и пишем в него числа
    {
        if (n>0){
         q.push(n);i++;
         cin >> n;}
        else {cout << "Error";exit;}
    }
if(!q.empty())                                      //показ на екран
      {
  while(!q.empty())
   {
    cout << q.front() << " ";
    q.pop();
   }
  }
 
if(!q.empty())                                      //здесь я хочу вывести те числа которие деляться на 2,3,5
      {                                             //в чём моя ошибка почему нельзя просто взять елемент % 2 
          while(!q.empty())                         //c:\users\philips\documents\visual studio 2010\projects\фывсчя\фывсчя\фывфыв.cpp(29): error C2676: бинарный "%": "std::iterator" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
   {
       queue <int>::iterator p=q.front();
    if ((p % 2 == 0) || (p % 3 ==0) || (p % 5 ==0)) cout << q.front() << " ";
    q.pop();
   }
  }
    cout << "\n";
    system("pause");
}
пожалуста дайте совет как исправить ошибки

Добавлено через 3 минуты
мой алгоритм
1 - сначала создать чергу
2 - записать числа
3 - сортировать чергу
4 - посмотрель если число кратное 2,3,5 вивести его на екран(или можна в другую чергу)
так можна решить задачу или нет?

Добавлено через 56 минут
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
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue <int> otv;
    queue <int> q;int i=0,n,k;
    queue<int> q1;
    cout << "Enter number = ";cin >> n;
   while (i!=n)                                    //создаем чергу и пишем в него числа
    {
        cout << "Enter element = ";cin >> k;
        if (k>0)
        {
         q.push(k);i++;
        }
        else {cout << "Error";break;}
   }
   
 
//здесь нужна сортировка q
 
 cout << "\nQueue [start]= ";
if(!q.empty())                                      //здесь я хочу вывести те числа которие деляться на 2,3,5
      {                                            
          while(!q.empty())                        
                 {
                    if ((q.front() % 2 == 0) || (q.front() % 3 == 0) || (q.front() % 5 == 0)) otv.push(q.front());
                     cout << q.front() << " ";
                    q.pop();    
    
                }
  }
cout << "\nQueue [finish] = ";
if(!otv.empty())                                      //показ на екран
      {
  while(!otv.empty())
   {
    cout << otv.front() << " ";
    otv.pop();
   }
  }
    cout << "\n";
    system("pause");
}
вот прога нужна только сортировка скиньте пожалуста

Добавлено через 25 минут
вот код програми.Так можно так делать или нет?
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
#include <iostream>
#include <queue>
using namespace std;
void SortMass(int* m, int n)
{
     for(int i = n - 1; i >= 1; i--)
       for(int j = 0; j < i; j++)
       {
               if(m[j] > m[j+1])
               {
                       int foo = m[j];
                       m[j] = m[j+1];
                       m[j+1] = foo;
               }
       }  
}
int main()
{
    queue <int> otv;
    queue <int> q;int n,k,i=0;
    int mas[100];
    queue<int> q1;
    cout << "Enter number [n<100]= ";cin >> n;
   while (i!=n)                                    //создаем чергу и пишем в него числа
    {
        cout << "Enter element = ";cin >> k;
        if (k>0)
        {
         q.push(k);i++;
        }
        else {cout << "Error";break;}
   }
   
 cout << "\nQueue [start]= ";
if(!q.empty())                                      //здесь я хочу вывести те числа которие деляться на 2,3,5
      {                                            
          while(!q.empty())                        
                 {
                     if ((q.front() % 2 == 0) || (q.front() % 3 == 0) || (q.front() % 5 == 0)) 
                     {
                         mas[i]=q.front();
                         i++;
                     }
                      cout << q.front() << " ";
                      q.pop();  
    
                }
  }
cout << "\nQueue [finish] = ";
SortMass(mas,i);
for (int j=n;j<i;j++)
    cout << mas[j] << " ";
    cout << "\n";
    system("pause");
}
алгоритм:
1 - создать Queue
2 - пишем числа в Queue
3 - узнаем числа 2,3,5
4 - сли есть такое число в Queue записуем его в наш масив
5 - сортируем наш масив
6 - пишем масив

P.S.скажите так можна или нужно иначе решить задачу
 
Текущее время: 09:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru