61 / 75
Jul 2019

W takim razie przyjmij moje gratulacje!

PS
Pani Sędzina zaakceptowała Twój kod ale powiedziała mi, że bardzo jej się on nie podobał i ja przychylam się do jej oceny i gdyby to zależało odemnie musiałabyś się jeszcze bardziej postarać :wink:

Dziękuję!
Twój post niestety kompletnie nic nie wnosi :frowning:

2 months later

Cześć i czołem!
Wyskrobałem kod (https://ideone.com/BBQbWe12 ) i intryguje mnie jedna rzecz
Jeśli wprowadzam dane w takiej postaci:
+1 +2 +3
to program działa poprawnie, tak długo jak wprowadzam dane.
A jeśli wprowadzam dane w takiej postaci:
+ 1 + 2 + 3
to pętla while przerywa działanie po wykonaniu 28. linii (pełny stos i buźka “:(”.
Przed return 0; wpisywałem też jedną testową instrukcję i działa, stąd wiem że while zostaje przerwana, ale funkcja main działa dalej.
Jest tak i na ideone i na codeblocksie.
Spoj stwierdza “błędna odpowiedź”, nie żaden błąd kompilacji.

O co chodzi?

Jeżeli nie wiadomo, o co chodzi, to chodzi o … :wink:
a czasami po prostu chodzi o to, że warto a czasami nawet trzeba koniecznie użyć else if i najczęściej to else załatwia całą sprawę, ale od razu uprzedzę, że twój kod tak czy siak [z else czy bez] nie podoba mi się :wink:

1 month later

Nie wiem dlaczego, ale u mnie ten program również nie działa. Pojawia się informacja “Przekroczono limit czasu”… Czytałem tutaj o problemach innych i nie wiem gdzie jest fail… Próbowałem ustawiać inne typy zmiennych, zamiast switcha i pętli do…while wstawiałem pętlę for z ifami i za każdym razem ten sam komunikat. Może ktoś coś podpowie? Po za tym, to mój pierwszy post na tym forum i początek przygody z programowaniem, także WITAM wszystkich i liczę na wyrozumiałość ;-). Pozdr!

#include

using namespace std;
short rozmiar;
short *tablica = new short[10];
short full;

void push()
{
if (rozmiar<=9)
{
rozmiar++;
cin>>tablica[rozmiar];
cout<<":)"<<endl;
}
else
{
cin>>full;
full=false;
cout<<":("<<endl;
}
}

void pop()
{
if (rozmiar>=1)
{
cout<<tablica[rozmiar]<<endl;
rozmiar–;
}
else
cout<<":("<<endl;
}

int main() {

char wybierz;
rozmiar = 0;
do
{
    cin>>wybierz;
    switch (wybierz)
    {
        case '+': push(); break;
        case '-': pop(); break;
    }
} while ((wybierz=='+')||(wybierz=='-'));
delete[]tablica;

return 0;

}

  1. zle sie czyta bez wciec
  2. doczytaj jak cin zwraca EOF flage konca pliku (strumienia) i zastosuj w programie
  3. zmien warunek konca petli.
    Pzdr

No dobra, zmieniłem pętlę na while i umieściłem warunek z cin. Dzięki za podpowiedzi :wink:

7 months later

Może mi ktoś podpowiedzieć co jest z moim kodem nie tak, w kompilatorze działa poprawnie jak wymaga tego zadanie tylko przy zgłoszeniu wyskakuje błąd kompilacji

#include
#include <windows.h>
#include

using namespace std;

int stos[11];
int nr_stosu;
char znak;

void push()
{

cin>>stos[nr_stosu];

if(nr_stosu>=10)
{
    cout<<":("<<endl;


}
else
{

    cout<<":)"<<endl;
    nr_stosu=nr_stosu+1;

}

}

void pop()
{
if(nr_stosu>=1)
{
nr_stosu=nr_stosu-1;
cout<<stos[nr_stosu]<<endl;
}
else
{
cout<<":("<<endl;
exit(0);
}

}

int main()
{
while ((znak!=’+’)||(znak!=’-’))
{
cin>>znak;
if(znak==’+’)
{
push();
}
else if(znak==’-’)
{
pop();
}
}
return 0;
}

Popieram, to co napisał @korkirw, to dramat.

Przy błędzie kompilacji przy zgłaszaniu kodu na SPOJU, możesz i powinieneś natychmiast kliknąć właśnie w ten napis - błąd kompilacji i dowiedzieć się o co chodzi - jaki to błąd. A chodzi zapewne o windows.h, bo SPOJ to Linux a nie windows i nie ma tu takiego pliku.
Dziwne, bo już przecież zaliczyłeś kilka AC.

Twój kod daje złe wyniki dla np. takiego przypadku:
-
-
-

Zauważyłem, że mój kod trwa zbyt długo co moge zrobić aby go przyspieszyć?

Może zacznij od tego żeby on w ogóle działał. Testuj go w ideone, w SPOJ działa dokładnie tak samo.

3 years later

raczej nie do końca dokładnie tak samo…
ideon wszystko git, spoj błąd wykonania
https://ideone.com/kxyqzF1
#java,
czy ktoś podpowie jak w javie zrobić while(cin>>a) :slight_smile:
bo tutaj ból jest największy.