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?
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;
}
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;
}
Jeśli zaczynasz, przeczytaj koniecznie! <–kliknij w to proszę! Przede wszystkim poprawne formatowanie. Jeśli oczekujesz pomocy to podaj swój kod tak by to było czytelne (to jest fundamentalny warunek, chociaż nie jedyny), to co wkleiłeś to dramat.
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.
Przepraszam za kod oto link już poprawny https://ideone.com/APGcaW9
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)
bo tutaj ból jest największy.
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
FR_20_02 - Poszukiwacze skarbów - Błąd w testach? | Zbiór zadań | 1 | 71 | Apr 2 |
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 175 | Jun '24 |
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 142 | Jul '24 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 121 | Jul '24 |
FR_08_11 - Gra w bańki | Zbiór zadań | 1 | 146 | Jun '24 |