Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100

Помогите найти и исправить ошибку в очереди.

05.04.2012, 00:14. Показов 1108. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Вот написал очередь, но работает не совсем корректно. Удаляет "голову очереди" вроде бы правильно, но после добавления "хвоста" в очереди появляются непонятно какие элементы. Помогите пожалуйста найти ошибку.

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
#include <iostream>
#include <conio.h>
#include <locale>
using namespace std;
 
void main()
{
    setlocale (LC_ALL, "Russian");
    int *queue;
    int tail=0,temp,head=0,x,komanda,n=1000,i;
    queue= new int [0];
    int *quesue = new int[n + 1];
    for(;;)
    {
        cout<<"\nДобавить или удалить элемент очереди?(нажмите 1, если добавить и 0 если удалить)";
        cin>>komanda;
 
        if(komanda==1)
        {
            cout<<"\nВведите ваш элемент: ";
            cin>>x;
            cout<<"\n";
            queue[tail]=x;
            tail++;
            
            if(tail>n) 
            tail=1;
            {
                for(i=0; i<tail; i++)
                cout<<queue[i]<<" ";
            }
        }
 
        if(komanda==0)
        {
            queue[head]=x;
            head++;
            for(i=head; i<tail; i++)
            cout<<queue[i]<<" ";
        }
    }
getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2012, 00:14
Ответы с готовыми решениями:

Помогите найти и исправить ошибку в коде
Не очень хорошо пока что понимаю язык,поэтому,думаю,косяков довольно много. Используя глобальные переменные,нужно обеспечить передачу...

исправить ошибку в очереди
имеется код программы в котором нужно исправить вид выводимых на экран оценок.не могу понять как это сделать.в целом программа...

Помогите исправить ошибку
Программа должна посчитать р используя s. После ввода любого значения у выдает :&quot;Floating poin eror: Divide by 0. Abnormal program...

11
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 185
05.04.2012, 00:29
C++
1
2
3
for(i=0; i<tail; i++)
 cout<<queue[i]<<" ";
 }
Почему в одном месте ты выводишь с нуля, а во втором с head?) Тут тоже надо с head начинать
1
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
05.04.2012, 01:12  [ТС]
TwiX, огромное вам спасибо))
В процессе у меня возникло ещё 2 вопроса.
Как вывести размер очереди?
Ответ выдает не верный.
И наконец второй вопрос.
Как полность очистить очередь?

Добавлено через 33 минуты
С размером я разобрался. Помогите пожалуйста, как очистить стек?
0
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 185
05.04.2012, 01:15
Цитата Сообщение от b0n4b Посмотреть сообщение
Помогите пожалуйста, как очистить стек?
Просто приравнять head к tail'у)
1
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
05.04.2012, 01:21  [ТС]
TwiX, благодарю)
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.04.2012, 01:42
вы намеренно не используете стандартную реализацию очереди из STL?
0
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
05.04.2012, 01:47  [ТС]
alexey31415, я не понимаю о чем вы говорите. Можно поподробней?
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.04.2012, 03:52
Класс queue (очередь) допускает вставку элементов в конец базовой
структуры данных и удаление элементов из ее начала (что обычно называют
структурой данных типа «первым вошел, первым вышел»). Очередь может быть
реализована структурой данных STL list либо deque. Типичными операциями
класса queue являются push для вставки элемента в конец очереди (что
реализуется вызовом функции push_back базового контейнера), pop для удаления
элемента из начала очереди (реализуется вызовом функции pop_front базового
контейнера), front для получения ссылки на первый элемент очереди
(реализуется вызовом функции front базового контейнера), back для получения
ссылки на последний элемент очереди (реализуется вызовом функции back
базового контейнера), empty для определения того, пуста ли очередь
(реализуется вызовом функции empty базового контейнера) и size для получения числа
элементов в очереди (реализуется вызовом функции size базового контейнера).

Добавлено через 3 минуты
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
#include <iostream> 
using std::cout; 
using std::endl; 
 
#include <queue> // определение адаптера queue 
 
int main() 
{ 
std::queue< double > values; // queue со значениями double 
 
// затолкнуть элементы в очередь values 
values.push( 3.2 ); 
values.push( 9.8 ); 
values.push( 5.4 ); 
 
cout << "Popping from values: "; 
 
// вытолкнуть элементы из очереди 
while ( !values.empty() ) 
{ 
cout << values.front() << ' '; // возвращает первый элемент очереди 
values.pop(); // удаляем первый элемент очереди 
} // конец while 
 
cout << endl; 
return 0; 
}
а лучше всего найди в интернете что такое STL и изучи,так как многое уже придумано давным давно
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
05.04.2012, 04:56
Причем тут намеренно, каждый начинающий программист должен знать как примерно устроены шаблоны и функции стандартной библиотеки, эти задания делаются не для того что бы создать свой класс и использовать его в дальнейшем, а для того что бы понять как все устроено и работает.
0
3 / 3 / 2
Регистрация: 16.11.2011
Сообщений: 100
05.04.2012, 10:34  [ТС]
alexey31415, Toshkarik, у меня задание реализовать очередь через массив. Подойдет ли шаблон, который прислал alexey31415????
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.04.2012, 13:44
Цитата Сообщение от b0n4b Посмотреть сообщение
Подойдет ли шаблон
в таком случае нет,потому что реализация очереди скрыта от тебя,у тебя уже сразу есть функции и алгоритмы для работы с очередью при помощи итераторов(считай указатели в массивах,хотя они и есть итераторы произвольного доступа)
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
05.04.2012, 15:09
У вас задание написать очередь самому, а не использовать шаблонную функцию стандартной библиотеки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2012, 15:09
Помогаю со студенческими работами здесь

помогите исправить ошибку
1) Надо исправить решение задачи , чтобы ввод значений элементов массива и вывод результатов производился в главной программе, а обработка...

Помогите исправить ошибку
#include &lt;process.h&gt; #include &lt;stdio.h&gt; int a; void Thread( void* pParams ) { int i, num = 0; while ( 1 ) ...

Помогите исправить ошибку
Программа считывает из входного файла символы и соответствующие им коды. Затем вводится строка. В выходной файл записывается зашифрованная...

Помогите исправить ошибку
#include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;windows.h&gt; #include&lt;vector&gt; using namespace std; bool Search(int i,int j); ...

Помогите исправить ошибку
Всем привет, выдается ошибка, не могу понять с чем связано. Задача такая: сделать из массива новый массив с неповторяющимися элементами. ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru