Cześć, czy ktoś mógłby zajrzeć w mój kod i podpowiedzieć, z jakiego powodu nie jest akceptowany przez sędzię?
Testy wejścia/wyjścia uzyskuję takie, jak podano w zadaniu.
Z góry dziękuję!
Link do kodu: https://ideone.com/NVyhxn13
Link do zadania: https://pl.spoj.com/problems/STOS/5
Popatrzyłem na Twój kod i od razu wszystkiego mi się odechciało. Masz bardzo niedobre formatowanie (przynajmniej według tych standardów według, których ja się uczyłem).
- Po co masz tu zmienne globalne? Oczywiście one nic nie szkodzą, ale jest to zły nawyk.
- Jedna instrukcja w jednej linii (to nie jest jakaś sztywna reguła, ale bardzo ułatwia znalezienie linii, w której jest błąd kompilacji czy podczas debugowania).
- Odpowiednie wcięcia.
Może znajdziesz innych, bardziej wyrozumiałych, chętnych do czytania Twojego kodu, ale ja się nie piszę na to gdy jest on w takiej postaci. Niby nie jest to trudne bo zadanie jest proste i kod krótki, ale dlaczego mam się wysilać gdy Tobie na tym nie zależy?
Dzięki za posta.
Poprawione formatowanie (domyślne z CodeBlocksa): https://ideone.com/chdsR310
Kto powiedział, że mi nie zależy? Na moim małym ekranie tamten kod wyglądał na czytelny
Teraz czyta się zdecydowanie lepiej
Mam dla Ciebie informację, którą pewnie cię zdziwi. Ten kod nie daje na ideone poprawnych wyników dla danych testowych . Jak Tobie się to udało?
Zauważ, że w treści zadania jest podane, że liczba operacji jest nieokreślona. Ty gdy testowałaś podawałaś to jako parametr, ale to jest niezgodne z warunkami zadania.
Jak wczytać niekreśloną ilość zmiennych? To było na SPOJ-u wielokrotnie opisywane, np. tak:
while(cin >>zmienna)
Dziękuję za wskazówki
Nauczyłam się czegoś nowego
Sędzia zaakceptował kod: https://ideone.com/DODkTG21
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 | 72 | Apr 2 |
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 176 | Jun '24 |
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 144 | Jul '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 123 | Feb 1 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 122 | Jul '24 |