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

Программа работы с очередью подскажите пожалуйста - C++

Восстановить пароль Регистрация
 
NuRiKGiF
 Аватар для NuRiKGiF
35 / 35 / 0
Регистрация: 11.06.2013
Сообщений: 163
16.10.2013, 06:10     Программа работы с очередью подскажите пожалуйста #1
Для решения задачи использовать стандартный тип "очередь", определённый в библиотеке STL. Исходные данные можно получить как вводом с клавиатуры, так и генератором случайных чисел.

(1 задача) ОЧЕРЕДИ

Очередь p заполнена чётным количесвом вещественых чисел. Из очереди изымаются 2 элемента. Если первый больше второго, то вычисляется их среднее значение, в противном случае выбирается наименьший элемент. Полученное число добавляется в конец очереди. Процесс повторяется, пока в очереди не останется одно число. Получить оставшееся число.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
16.10.2013, 09:04
  #2
 Комментарий модератора 
Пункт 5.16 Правил: Одна тема - один вопрос.
govorov
24 / 24 / 3
Регистрация: 25.09.2013
Сообщений: 76
16.10.2013, 10:01     Программа работы с очередью подскажите пожалуйста #3
Цитата Сообщение от NuRiKGiF Посмотреть сообщение
Из очереди изымаются 2 элемента. Если первый больше второго, то вычисляется их среднее значение, в противном случае выбирается наименьший элемент.
Какие два элемента? Со случайным номером?
rpsv
15 / 46 / 3
Регистрация: 14.10.2013
Сообщений: 161
16.10.2013, 10:29     Программа работы с очередью подскажите пожалуйста #4
Вот пример, соотвествует вашему ТЗ?

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
#include <iostream>
#include <queue>
 
using namespace std;
 
void Filling_queue(queue<int> &Q)
{
    for (int i = 0; i < 10; i++)
    {
        Q.push(i);
    }
}
 
int Get_last_item(queue<int> Q)
{
    while( Q.size() != 1 )
    {
        int new_item = 0;
        //
        // Выгружаем первые два элемента (front) и удаляем их (pop)
        //
        int x1 = Q.front();
                 Q.pop();
        int x2 = Q.front();
                 Q.pop();
        //
        if ( x1 > x2 )
        {
            new_item = (x1 + x2) / 2;
        }
        else
        {
            new_item = x2;
        }
        //
        // Добавляем полученый элемент
        //
        Q.push(new_item);
    }
    //
    return Q.front();
}
 
void main()
{
    //
    // Создаем очередь
    //
    queue<int> Q;
    //
    // Заполняем очередь (от 0 до 10)
    //
    Filling_queue(Q);
    //
    // Находим последний элемент
    //
    int LOST = Get_last_item(Q);
    //
    // Вывод
    //
    cout<<LOST<<"\n";
    system("pause");
}
Yandex
Объявления
16.10.2013, 10:29     Программа работы с очередью подскажите пожалуйста
Ответ Создать тему
Опции темы

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