|
Titlul: insule ( fill) Scris de: Vlad Eugen Dornescu din Noiembrie 18, 2009, 18:04:47 Cod: void fill(int x, int y) ce nu e in regula cu functia asta? imi da segmentation fault cum aflu numarul de insule intr-o matrice cu val 0(apa),1,2,3 (cu ajutorul acestei functii) si de ce imi da segmentation fault? Titlul: Răspuns: insule ( fill) Scris de: Florian Marcu din Noiembrie 18, 2009, 18:11:43 x si y pot deveni negative [ daca tot scazi din ele ] sau pot depasi limitele superioare ale matricei [ daca le tot aduni ]. Pune conditie ca x si y sa se afle in matrice [ x > 0 && y>0 && x<=N && y<=M ]. :)
Titlul: Răspuns: insule ( fill) Scris de: Paul-Dan Baltescu din Noiembrie 18, 2009, 18:20:36 Nu e bine ca nu marchezi pozitiile prin care treci. Tu intri cu functia de mai sus o celula vecina de valoare 1 si apoi din acea celula te poti intoarce in celula initiala si tot asa. Programul face o bucla infinita, insa din cauza ca stiva e limitata (nu poti avea un numar infinit de apeluri de functii in ea), programul crapa si da Segmentation Fault.
Titlul: Răspuns: insule ( fill) Scris de: alexandru din Noiembrie 18, 2009, 19:55:59 In loc sa pui 100 de if-uri, n-ar fi mai bine daca ai folosi un for?
Cod: const int dx[]={ -1, 0, 1, 0 }; // deseanaza o celula in ea pui coordonatele x,y si apoi determeni vecini celulei prin Titlul: Răspuns: insule ( fill) Scris de: Vlad Eugen Dornescu din Noiembrie 19, 2009, 17:00:56 multumesc, sunt ](*,) prost recunosc :aha:
Titlul: Răspuns: insule ( fill) Scris de: alexandru din Noiembrie 19, 2009, 20:08:27 prost recunosc Nu, nu esti prost, doar ai nevoie de multe exercitii, ca noi toti de altfel :-k |