raf13 Δημοσ. 10 Ιουνίου 2016 Δημοσ. 10 Ιουνίου 2016 Θελω να κανω αναζητηση ενος στοιχειο σε μια λιστα κ να βρω σε πιον κομβο ανηκει.Παρακατω ειναι η συναρτηση για την αναζητηση,ο compiler δεν μου βγαζει καποιο error αλλα για τον counter μου εμφανιζει οτι ειναι 1,για οποιο στοιχειο κανω αναζητηση..Καμμια ιδεα που εχω κανει λαθος? int search(Node *head,elem key) { Node *current=head; int cnt; if(!head) return FALSE; else { while(current) { if(current->data==key) break; else { cnt++; current=current->next; return cnt; } } } }
Moderators Kercyn Δημοσ. 10 Ιουνίου 2016 Moderators Δημοσ. 10 Ιουνίου 2016 Πήρες 2 απαντήσεις στο προγούμενο thread. Κάνεις return το cnt στο πρώτο iteration. 1
_Gikoskos_ Δημοσ. 10 Ιουνίου 2016 Δημοσ. 10 Ιουνίου 2016 Αρχικοποίησε το cnt πρώτα σε 0, γιατί όλες οι τιμές που σου επιστρέφονται από αυτήν την συνάρτηση θα είναι σκουπίδια. Επίσης το cnt++ πρέπει να είναι η πρώτη εντολή που θα τρέχει μέσα στον βρόγχο σου. Μετά ελέγχεις αν το key είναι ίσο με το current->data και αν είναι επιστρέφεις το cnt, αλλιώς current = current->next και συνεχίζει κανονικά ο βρόγχος από το επόμενο iteration. 1
jimcodeman Δημοσ. 16 Ιουνίου 2016 Δημοσ. 16 Ιουνίου 2016 you dont initialize cnt : int cnt = 0; ----------------------------- and cnd++ must be first
kaliakman Δημοσ. 16 Ιουνίου 2016 Δημοσ. 16 Ιουνίου 2016 you dont initialize cnt : int cnt = 0; ----------------------------- and cnd++ must be first Εδώ δεν χτυπάει για greeklish? Τι έγινε το κάναμε διεθνές?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα