Dawałem inta i też miałem SIGSEGV.
A w zadaniu byłowięc nie muszę mieć tablic 10mln.t <= 100000
Dawałem inta i też miałem SIGSEGV.
A w zadaniu byłowięc nie muszę mieć tablic 10mln.t <= 100000
long int max=-10000000, min=10000000;
for(i=min;i<=max;i++) printf("Strzal w stope");
Zamiana "max=-10000000, min=10000000" nic nie dała. I na long inta też, czego można się było spodziewać skoro int i long long int nie działały.
Jedną z przyczyn wystapienia błędu SIGSEGV jest odwołanie się do niewłaściwego elementu tablicy czy wykroczenie poza jej obszar. Błędu doszukiwałbym się teraz w przyporządkowaniu danych do tablicy. Być może gdzieś popełniłeś błąd i np: if(tab[i]<min)min=tab[i] nie może przypisać właściwie bo "i" w którymś momencie wykracza poza zakres tablicy.
Jedyne rozwiązanie które tu widzę, to skasowanie algorytmu i zapisanie go od nowa, ale próbnie na max 20 elementach. Wtedy będziesz mógł prześledzić czy działa dobrze na tak małej ilości a jeśli nie to włączysz debuger i też będziesz w stanie to prześledzić, bo dla 10mln to raczej nie bardzo : P Potem po prostu powiększysz zakres zmiennych jesli wszystko będzie dobrze działac na 20 elementach.
Ostatnio edytowane przez Elitegroup : 07-10-2009 - 09:36
Jak mam niby napisać inny algorytm. Napisałem dobry, tylko nie rozważyłem jakiejś opcji, co prowadzi do błędu. Tak więc wystarczy tylko mała zmiana w moim programie i będzie działał. Problem tylko - jaka to ma być zmiana?
A co do debuggera, to kompilowałem program w DevC++ i działa.