• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolejka w C++

0 głosów
1,171 wizyt
pytanie zadane 27 listopada 2018 w C i C++ przez Nowicjusz2018 Nowicjusz (240 p.)

Czesc Chłopaki i dziewczyny mam zadanie ze SPOJa https://www.spoj.com/WWSIASD/problems/ASD_4_2/ oto mój kod: wywala błąd Blędna odpowiedz wie ktoś dlaczego ?

#include <iostream>
using namespace std;
#include <string>
const int SIZE = 10;
 
int A[SIZE];
int front = -1;
int rear = -1;
 
bool isempty() {
  if (front == -1 && rear == -1)
    return true;
  else
    return false;
}
 
void enqueue(int value) {
  if (rear == SIZE - 1)
    cout << "Error: queue is full\n";
  else {
    if (front == -1)
      front = 0;
    rear++;
    A[rear] = value;
    cout << "--->\n";
  }
}
 
void dequeue() {
  if (isempty()){
    cout << "Error: queue is empty\n";
    }
  else if (front == rear){
     cout << A[front] << "\n";
    front = -1;
    rear =  -1;
    }
  else{
    front++;
     cout << A[front - 1] << "\n";
  }
}
 
void displayQueue() {
  if (isempty()){
    cout << "Print: Queue is empty\n";
  }
  else {
   cout << "Print:";
   for (int i = front; i <= rear; i++)
   cout <<" "<< A[i];
  }
  cout<<"\n";
  

}
 
int main()
{
    string str;
    while (cin >> str) {
        int wlozyc;
 
        if (str == "Enqueue") {
            if (cin >> wlozyc) {
                enqueue(wlozyc);
            }
        } else if (str == "Dequeue") {
            dequeue();
        } else  if (str == "Print") {
            displayQueue();
        }
		
    }
 
    return 0;
}

 

komentarz 27 listopada 2018 przez adrian17 Mentor (355,240 p.)

oto mój kod: wywala błąd Blędna odpowiedz wie ktoś dlaczego ?

Odpalałeś kod dla przykładowego wejścia?

1 odpowiedź

0 głosów
odpowiedź 27 listopada 2018 przez Nowicjusz2018 Nowicjusz (240 p.)
Dopiero teraz widzę że gdy chcę dodać liczbę wyskakuje komunikat **queue is full** jak to naprawić?
komentarz 27 listopada 2018 przez adrian17 Mentor (355,240 p.)
Zastanów się, czy Twój warunek na "queue is full" ma sens, gdy usuwasz rzeczy z kolejki robiąc `front++`.

Podobne pytania

0 głosów
1 odpowiedź 759 wizyt
pytanie zadane 6 maja 2018 w C i C++ przez BartekCK Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 1,325 wizyt
pytanie zadane 4 lipca 2016 w C i C++ przez xjakubekx Obywatel (1,280 p.)
0 głosów
1 odpowiedź 905 wizyt
pytanie zadane 21 maja 2023 w C i C++ przez Dani Obywatel (1,450 p.)

93,778 zapytań

142,737 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...