Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312

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

17.06.2013, 13:38. Показов 1746. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: у нас есть очередь на n элементов (n - пишет пользователь) type = integer;
нужно вывести в порядке возрастание элементы, которые кратны 2,3,5.
Помогите пожалуста!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2013, 13:38
Ответы с готовыми решениями:

Найти четные элементы массива и вывести их на экран в порядке возрастание.
Требуется: Найти четные элементы массива и вывести их на экран в порядке возрастание.

Дана матрица. Найти произведение тех ее элементов, которые кратны L
Дана матрица А(N*L). Найти произведение тех ее элементов, которые кратны L.

В матрице вывести на экран в строках те элементы, которые кратны k
В матрице вывести на экран в строках те элементы, которые кратны k. То есть из каждой стороки удалить те элементы, которые не кратны k

3
4 / 4 / 1
Регистрация: 26.02.2013
Сообщений: 24
17.06.2013, 15:38
Привет напиш хоть для начала свой код:stop:
0
С++ Beginner
 Аватар для MarVaL
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
17.06.2013, 16:34
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
class Queue {
public:
  class Bad_Size { };
  class Overflow { };
 
  Queue(int size);
  ~Queue();
 
  int dequeue();
  void enqueue(int d);
  void sort();
private:
  int *data;
  int end, top;
  int max_size;
};
 
Queue::Queue(int size) {
  if(size > 1000 || size < 0)
    throw Bad_Size();
  top = size - 1;
  end = size;
  max_size = size;
  data = new int[size];
}
 
Queue::~Queue() {
  delete[] data;
}
 
void Queue::sort() {
  for(int i = 0; i != max_size - 1; ++i) {
    for(int j = max_size - 1; j != i; --j) {
      if(data[i] > data[j]) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
      }
    }
  }
}
 
void Queue::enqueue(int d) {
  if(end == 0)
    throw Overflow();
  --end;
  data[end] = d;
}
 
int Queue::dequeue() {
  int index = top;
  --top;
  return data[index];
}
 
int main() {
  setlocale(0, "");
  srand(time(0));
  
  std::cout << "Введите размер очереди: ";
  int size;
  std::cin >> size;
  
  Queue *queue = new Queue(size);
  
  std::cout << "Элементы очереди: " << std::endl;
  
  int counter = 0;
  
  for(int i = 0; i != size; ++i) {
    int x = 1 + rand () % 20;
    queue->enqueue(x);
    std::cout << counter << ". " << x << std::endl;
    ++counter;
  }
  
  std::cout << "\nЭлементы очереди кратные 2,3,5: " << std::endl;
  counter = 0;
  
  for(int j = 0; j != size; ++j) {
    int x = queue->dequeue();
    if(!(x % 2) || !(x % 3) || !(x % 5)) {
      ++counter;
      std::cout << counter << ". " << x << std::endl;
    }
  }
  
  delete queue;
  
  return 0;
}
Добавлено через 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
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
class Queue {
public:
  class Bad_Size { };
  class Overflow { };
 
  Queue(int size);
  ~Queue();
 
  int dequeue();
  void enqueue(int d);
  void sort();
private:
  int *data;
  int end, top;
  int max_size;
};
 
Queue::Queue(int size) {
  if(size > 1000 || size < 0)
    throw Bad_Size();
  top = size - 1;
  end = size;
  max_size = size;
  data = new int[size];
}
 
Queue::~Queue() {
  delete[] data;
}
 
void Queue::sort() {
  for(int i = end; i != top; ++i) {
    for(int j = top; j != end; --j) {
      if(data[i] < data[j]) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
      }
    }
  }
}
 
void Queue::enqueue(int d) {
  if(end == 0)
    throw Overflow();
  --end;
  data[end] = d;
}
 
int Queue::dequeue() {
  int index = top;
  --top;
  return data[index];
}
 
int main() {
  setlocale(0, "");
  srand(time(0));
  
  std::cout << "Введите размер очереди: ";
  int size;
  std::cin >> size;
  
  Queue *queue = new Queue(size);
  
  std::cout << "Элементы очереди: " << std::endl;
  
  int counter = 0;
  
  for(int i = 0; i != size; ++i) {
    int x = 1 + rand () % 20;
    queue->enqueue(x);
    ++counter;
    std::cout << counter << ". " << x << std::endl;
  }
 
  queue->sort();
  
  std::cout << "\nЭлементы очереди кратные 2,3,5: " << std::endl;
  counter = 0;
  
  for(int j = 0; j != size; ++j) {
    int x = queue->dequeue();
    if(!(x % 2) || !(x % 3) || !(x % 5)) {
      ++counter;
      std::cout << counter << ". " << x << std::endl;
    }
  }
  
  delete queue;
 
  std::cin.get();
  std::cin.get();
  return 0;
}
0
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
17.06.2013, 18:05  [ТС]
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.скажите так можна или нужно иначе решить задачу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2013, 18:05
Помогаю со студенческими работами здесь

Найти и вывести элементы массива, которые не кратны 9 и находятся в диапазоне [30, 70]
Дан целочисленный массив из 70 элементов.Элементы массива могут принимать целые значения от 0 до 100.Составить программу ,позволяющую найти...

Вывести все элементы множества, которые можно составить из пары элементов в лексикографически возрастающем порядке
1. Ограничение по времени: 0.5 секунд Ограничение по памяти: 16 мегабайт В первой строке входного файла содержится число 4 ≤ N ≤...

Напишите программу, которая выводит те элементы массива, которые кратны 3 и не кратны 5
Дан массив, состоящий из 10 целых чисел. Значение элементов задается случайными числами на отрезке и выводится на экран. Нумерация...

Создать массив из 50 элементов и сложить те элементы которые кратны 5
Создать массив из 50 элементов и сложить те элементы которые кратны 5

Вывести элементы массива, которые одновременно кратны 2 и 7 и расположены на чётных позициях
Здравствуйте, не получается реализовать вывод. Приходится придумывать обходные пути. Сама задачка: Вывести элементы числового...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru