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

SPOJ STOS - Stos, Błędna odpowiedź/zbyt długi czas oczekiwania

0 głosów
458 wizyt
pytanie zadane 16 lipca 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)
zmienione kategorie 16 lipca 2018 przez Piotr Błaszczak

Cześć, mam problem z zadaniem ze spoja(https://pl.spoj.com/problems/STOS/). U mnie wszystko śmiga jak należy ale gdy przesyłam rozwiązanie spoj odrzuca mi z dopiskom "Zbyt dłuugi czas oczekiwania" a jak próbuje poprawić to wyświetla "Błędna odpowiedź". Wie ktoś może co jest nie tak? Mój kod:

#include <iostream>

using namespace std;

int dane[11];
int rozmiar;

void push()
{
    if (rozmiar>=10)
    {
        cout <<":("<<endl;
    }
    else
    {
        rozmiar=rozmiar+1;
        cin>>dane[rozmiar];
        cout<<":)"<<endl;
    }
}

void pop()
{
    if (rozmiar>=1)
    {
        cout<<dane[rozmiar]<<endl;
        rozmiar=rozmiar-1;
    }
    else
    {
        cout << ":("<<endl;
    }
}
int main()
{

    char wybor;
    rozmiar=0;

    do
    {

        cin >> wybor;

        switch (wybor)
        {
        case '+':
            push();
            break;

        case '-':
            pop();
            break;

        }

    }
    while (wybor == '-'||'+');

    return 0;
}

 

komentarz 16 lipca 2018 przez Mariusz08 Maniak (62,280 p.)
Zła kategoria (SPOJ)
komentarz 16 lipca 2018 przez Piotr Błaszczak Bywalec (2,890 p.)
Już poprawione :)

1 odpowiedź

+1 głos
odpowiedź 16 lipca 2018 przez profesorek96 Szeryf (91,420 p.)
wybrane 16 lipca 2018 przez Piotr Błaszczak
 
Najlepsza

Spróbuj taką wersje kodu:

#include <iostream>
 
using namespace std;
 
int dane[11];
int rozmiar;
 
void push()
{
    if (rozmiar>=10)
    {
        cout <<":("<<endl;
    }
    else
    {
        rozmiar=rozmiar+1;
        cin>>dane[rozmiar];
        cout<<":)"<<endl;
    }
}
 
void pop()
{
    if (rozmiar>=1)
    {
        cout<<dane[rozmiar]<<endl;
        rozmiar=rozmiar-1;
    }
    else
    {
        cout << ":("<<endl;
    }
}
int main()
{
 
    char wybor;
    rozmiar=0;
 
    while(cin>>wybor&&(wybor == '-'||'+'))
    {
 
        //cin >> wybor;
 
        switch (wybor)
        {
        case '+':
            push();
            break;
 
        case '-':
            pop();
            break;
 
        }
 
    }
 
    return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 225 wizyt
0 głosów
1 odpowiedź 542 wizyt
0 głosów
1 odpowiedź 704 wizyt
pytanie zadane 25 stycznia 2017 w C i C++ przez Dawid Ramone Nowicjusz (120 p.)

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,326 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.

...