Piszę zadanie na spoja gdzie nie wiadomo ile liczb zostanie podanych i chciałbym żeby program wczytywał je wszystkie, przetwarzał i się wyłączał. Starałem się to zrobić Scannerem, pętlą while i s.hasNext ale wtedy po przetworzeniu wszystkich liczb program czeka zamiast się wyłączyć. Jak mogę je wczytać, żeby działało?
#java #spoj
@Caishen: @ilmash: Mnie w tych wszystkich stronach denerwuje to ze są dostosowane tylko pod C++/C jeśli chodzi o rankingi, zdecydowanie fajniej by było jak by pisanie polegało zawsze na zaimplementowaniu jakiejś metody, dostosowane pod każdy język, np w javie kod musiałby być klasą implementującą interface zadania (np int add(int a, int b) do zadania na dodawanie, ta durny przykład), i wszystkie testy odpalane wielokrotnie i na tej samej instancji programu
@Szczypioreg: program ma się kompiować/interpretować poprawnie a potem uruchamiać. To czy kod jest w klasie, czy w tablicy znaków ascii, które potem zostaną zinterpretowane jako komendy... to nie ma znaczenia, tak długo dopóki wszystko masz w jednym pliku i dopóki nie wykorzystujesz zabronionych systemowych funkcji (odczyt/zapis do plików, etc)
SIGSEGV


@Gladias: przekraczasz zakres tablicy, odwołujesz się pewnie do nieistniejącego elementu tablicy. Nie musisz wczytywać wyników do tablicy, możesz od pobrać dane, wyświetlić wynik i pobrać następne dane.
@repcak9: To znaczy, że wykonujesz więcej operacji niż jest potrzebne. Zastanów się co tak na prawdę powinieneś policzyć wtedy zobaczysz, że da się to policzyć w mniejszej liczbie operacji, czyli szybciej.
@RaVo: btw skróciłem Twój kod do 23 linijek, jak zaliczysz zadanie na spoju to napisz do mnie na priv to podeślę Ci tę skróconą (skróconą, uproszczoną i poprawioną) wersję i ewentualnie powiem co, jak i dlaczego jeśli będziesz chciał.
@RaVo: przede wszystkim to wyciągnąłeś armaty przeciwko muchom - żadne dynamiczne alokowanie nie było potrzebne, wynik można wypisywać od razu. Sędzia spojowy i tak bierze go dopiero na koniec, kiedy program skończy się wykonywać :)

Poza tym, zamiast używać tablic dynamicznych poczytaj o std::vector - olbrzymie ułatwiemie, jak już się przyzwyczaisz do niego, to będziesz go używał nawet zamiast zwykłych tablicy :D
@ilmash: spoj jest spoko, regularnie nie robię, ale lubię sobie od czasu do czasu machnąć jakieś łatwe zadanie. Już coś koło 130 rozwiązanych się uzbierało przez kilka miesięcy.
@RaVo: Z góry zaznaczę, że jestem noobem, ale pamiętam swoje zabawy z konwersjami z decimal to hexagonal. Masz, może ci trochę rozjaśni:

int zmienna = 1234;
cout << "zmienna w dziesiatkowym\t\t" << zmienna << endl;
cout << "zmienna w szesnastkowym\t\t" << hex << zmienna << endl;

int zmienna_hex = 0x0102fdac; //trzeba dac 0x przed ciągiem znaków zapisu szesnastkowego
cout << "zmienna_hex w szesnastkowym\t\t" << zmienna_hex << endl;
cout << "zmienna_hex w
@RaVo: masz za maly bufor (czemu lend-1 ?!)

powinienes dac lend+1 i po pętli T[lend]='\0';

ps. jesli str2 jest krotszy, to potem drugi raz szukasz jego dlugosci.
sizet len = std::min(strlen(str1), strlen(str2);

ps2. rzutujesz size
t (zwracany przez strlen) na inta, wiec przy odpowiednio dlugim stringu wyjdzie ci z tego wartosc ujemna.

Poza tym popracuj nad stylem. Z jednej strony c++ (cin,cout,new,delete), a z drugiej ansi c (deklaracja