13 / 32
Mar 2017

U Ciebie char *sig powinien nazywać się poprostu temp, tmp lub pom.
Na koniec wypisujesz odwrócony ciąg ale w pamięci jest prawidłowy, więc nawet nie trzeba go odwracać, jak napisałem wcześniej.

PS
Jeżeli funkcją malloc alokujemy pamięć na string, to musimy zaalokować jej co najmniej o 1 więcej, niż długość stringa, bo przecież na końcu stringa jest jeszcze jeden znak, znak = 0. Dodatkowo, ponieważ malloc tylko przydziela obszar pamięci, ale go nie zeruje, musimy to zero wpisać ręcznie na końcu stringa. W takim razie, tylko poprawka malloc(k+1], tab[k] = 0 ... free będzie działać tak jak chciałeś. A dlaczego, w takim razie nie ma SIGABORT SIGKILL czy jakiegoś podobnego sygnału? Nie wiem, ale "normalnie" takie zdarzenia najczęściej nie są w ogóle sygnalizowane [aby program nie tracił czasu indeksy nie są sprawdzane] i dopiero doinstalowanie odpowiednij biblioteki może wymusić takie zachowanie.

PS2

Ps: Czy małe serduszko ma jakiś wpływ na statystyki ;> czy tylko na nasze samopoczucie? ^^

Hym. Nic nie wiem o statystykach, ale dobre uczynki zostaną nam policzone i nagrodzone? wink Ma to jednak dodatkowo wpływ na komunikatywność. Ty nie musisz pisać, dzięki, pomogło, tylko klikasz w serduszko, a ja wim, że byłem w jakimś stopniu pomocny i że w ogóle przeczytałeś moją podpowiedż i Cię usatysfakcjonowała, a jeżeli za mało, to pytasz dalej.

PS 3
Możesz trochę skrócić kod, np:
zamiast:
char temp;
temp = *x;
możesz
char temp = *x;

swap((a+l), (a+i)) <==> swap (a+l, a+i)
*(a+(i+1)) <==> *(a+i+1)
*(a+(r-1)) <==> *(a+r-1)

zamiast:

for(int i=0; i<k;i++)   

 {
        tab[i]= 97+i;
    }

możesz

for(int i=0; i<k;i++)
        tab[i]= 97+i; // a lepiej tab[i] = 'a' + i;

A jeżeli już to ja pewnie napisałbym to jakoś tak:

for (int i = 0; i < k; ++i) { //<-- nawias w tej linii
        tab [i] = 'a' + i; // tu może trochę zaszalałem [ze spacjami] ;-)
        /// inne operacje
    }

Chyba, że wolisz, żeby za ciebie robiło to twoje ukochane ide, ale jak kocha[ne] to powinno się dać ustawić i dostosować do Ciebie a nie Ty do niego[ej], lub trzeba zmienić na inną[go] wink

3 months later

Mam problem z sygnałem SIGXFSZ. W jaki sposób przekraczam wielkość pliku?
//tu był jakiś tam kod

Podbijam, niech ktoś chociaż przepróbuje to u siebie. Nie miałem nigdy do czynienia z takimi problemami podczas pisania, więc tym bardziej nie wiem co mam poprawić.

EDIT:
Poprawiłem wyjście tak, aby nie wypisywać znaku nowej linii po ostatnim teście, ale to wcale nie pomogło. Czekam na jakąkolwiek odpowiedź...

//tu był jakiś tam kod

EDIT2:
if (n<=0)
continue;
Nie wydawało mi się że w testach może być wypisanie 0-permutacji. A jednak.
Kody usuwam.

9 months later

Jak wejdziesz w swoje zgłoszenia, to możesz zobaczyć jaki był błąd przy konkretnej próbie.

Albo po prostu przeczytaj dokłdnie treść zadania od deski do deski, ze szczególnym zwróceniem uwagi na deski.

Okej, dzięki
Widocznie jestem za krótko na spoju bo pierwszy raz rozwiązywałem zadanie w którym nie można używać C++, kod już usuwam

1 year later

nie bardzo wiem, co odpowiedzieć - bo kod ma się nijak do treści zadania - nawet zamieszczony przez ciebie przykład jest zupełnie inny niż w treści zadania (nie tylko wartości ale i struktura danych) - więc albo to inne zadanie (dopisałeś się do innego wątku ?), albo niedokładnie przeczytałeś/zrozumiałeś zadanie

a jaka jest prawidłowa odpowiedź na przykład z poprzedniego postu ?
bo na pewno nie 6

9 months later

Hej. Mój kod przekracza limity czasowe. Wcale się nie dziwię ale nie mam pomysłu na inne rozwiązanie zadania. W skrócie każde słowo sortuje i daje do tablicy dynamicznej. Następnie przechodzę po każdym słowie i sprawdzam czy wystąpiło w tablicy . Jeśli ilość wystąpień jest większa od maksa to zmieniam maksa. Na końcu wypisuje maxa. Mam teraz prośbę o sprawdzenie mojego kodu , wytknięcie mi błędów jakie robię i naprowadzenie na rozwiązanie zadania.
Kod : https://ideone.com/tkeNGN#stdin38

Liniowe wyszukiwanie istniejących słów jest zdecydowanie za wolne. Z tego co widzę, masz algorytm o złożoności kwadratowej, co jest jeszcze gorsze, niż myślałem. Proponuję od razu zliczać ilość wystąpień danego słowa, już podczas ich wczytywania.

Dodatkowo poczytaj sobie o kontenerach map13 i unordered map17.

Dziękuję za pomoc. Poczytałem sobie trochę o mapie. przekształciłem kod i przeszło. Jeszcze raz dziękuję :slight_smile:

5 months later

Witam, popełniłem taki oto kod: <kod usunięty ze względów profilaktycznych> lecz w drugim teście dostaję WA. Dobrze zrozumiałem treść zadania?

No tak, wystarczyło posortować…
Jak to ciężko czasem znaleźć właściwy przykład xD