Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Θελω να κανω αναζητηση ενος στοιχειο σε μια λιστα κ να βρω σε πιον κομβο ανηκει.Παρακατω ειναι η συναρτηση για την αναζητηση,ο 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;
                       }
                }
         }

Δημοσ.

Αρχικοποίησε το cnt πρώτα σε 0, γιατί όλες οι τιμές που σου επιστρέφονται από αυτήν την συνάρτηση θα είναι σκουπίδια.

 

Επίσης το cnt++ πρέπει να είναι η πρώτη εντολή που θα τρέχει μέσα στον βρόγχο σου. Μετά ελέγχεις αν το key είναι ίσο με το current->data και αν είναι επιστρέφεις το cnt, αλλιώς current = current->next και συνεχίζει κανονικά ο βρόγχος από το επόμενο iteration.

  • Like 1
Δημοσ.

you dont initialize cnt :

int cnt = 0;

-----------------------------

and cnd++ must be first

Εδώ δεν χτυπάει για greeklish? Τι έγινε το κάναμε διεθνές? :P

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...