eto Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 ΘΕΛΩ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ ΝΑ ΜΟΥ ΕΛΕΓΧΕΙ ΜΕ ΤΗΝ ΣΥΝΑΡΤΗΣΗ ΑΝ ΥΠΑΡΧΟΥΝ ΔΥΟ ΣΥΝΕΧΟΜΕΝΟΙ ΚΟΜΒΟΙ ΤΗΣ ΛΙΣΤΑΣ ΠΟΥ ΕΧΟΥΝ ΙΔΙΟ ΥΠΟΛΟΙΠΟ ΜΕ ΤΟ 7....ΔΕΝ ΜΟΥ ΔΟΥΛΕΥΕΙ ΣΩΣΤΑ ΑΝ ΚΑΠΟΙΟΣ ΞΕΡΕΙ ΑΣ ΒΟΗΘΗΣΕΙ ΕΥΧΑΡΙΣΤΩ #include <stdio.h> #include <stdlib.h> struct list { int data; struct list *next; }; struct list * findConsecutiveModulo(struct list *); struct list *insertNodeList(int v, struct list *listHead) { struct list *node; node=(struct list *)malloc(sizeof(struct list)); node->data = v; node->next = listHead; return node; } int main() { int size,i,x; struct list *ptr=NULL; struct list *temp; printf("give me the size of the list:\n"); scanf("%d",&size); struct list *head=NULL; printf("give me the numbers of the list:\n"); for(i=0; i<size; i++) { scanf("%d",&x); head=insertNodeList(x,head); if(i==0) { temp=head; // krataw ston temp ton prwto arithmo pou diavazw } } ptr=findConsecutiveModulo(temp); if(ptr!=NULL) { printf("the data of the node are : %d\n\n",ptr->data); } system("pause"); } struct list * findConsecutiveModulo(struct list *Head) { if(Head->next== NULL) { printf("there aren't data nodes with same module 7 \n\n"); return NULL; } else if(Head->data % 7 == Head->next->data % 7) { printf("the data of the nodes are %d %d\n\n",Head->data,Head->next->data); return Head; } else { findConsecutiveModulo(Head->next); } }
tr3quart1sta Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 σουλουπωσε πρωτα λιγο τον κωδικα, να μπορει να τον διαβασει ο αλλος (βαλτο μεσα σε , χωρις κενα)
lion2486 Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 αυτό που παρατήρησα είναι ότι αν βρείς αυτό που ψάχνεις, σταματάς (κάνεις return), δεν θέλεις να βρείς όλα τα ζεύγη; (να τρέξεις πρώτα την αναδρομή; Επίσης θα το υλοποιούσα με επανάληψη εγώ...
eto Δημοσ. 14 Μαρτίου 2014 Μέλος Δημοσ. 14 Μαρτίου 2014 ΟΧΙ ΟΛΑ ΤΑ ΖΕΥΓΗ ΤΟΥΣ ΔΥΟ ΠΡΩΤΟΥΣ ΣΥΝΕΧΟΜΕΝΟΥΣ ΑΡΙΘΜΟΥΣ ΜΕ ΙΔΙΟ ΥΠΟΛΟΙΠΟ ΔΙΑΙΡΩΝΤΑς ΜΕ ΤΟ 7...ΕΠΙΣΗΣ Η ΑΣΚΗΣΗ ΠΡΕΠΕΙ ΝΑ ΓΙΝΕΙ <<ΑΝΑΔΡΟΜΙΚΑ>> ΓΙΑ ΑΥΤΟ ΔΕΝ ΧΡΗΣΙΜΟΠΟΙΩ WHILE
arc Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 Βάλε τον κώδικα σε code tag για να διαβάζεται (Κανε επεξεργασία το αρχικό σου θέμα). Επισης οταν λες οτι δεν σου δουλευει σωστά, σε ποιο κομμάτι εχεις πρόβλημα; Τέλος μην γράφεις κεφαλαία, είναι σαν να φωνάζεις
traczor Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 Ειμαι σιγουρος οτι οι διαφανειες του Δελληγιαννακη φτανουν και περισσευουν. Για οσους δεν καταλαβαν μην ανησυχειτε. Καταλαβε αυτος που αρχισε το θεμα. Παρεπιπτοντως εχεις λυσει το προβλημα να ειναι μονο ακεραιος.
eto Δημοσ. 14 Μαρτίου 2014 Μέλος Δημοσ. 14 Μαρτίου 2014 ΣΤΟ ΟΤΙ ΔΕ ΜΟΥ ΜΠΑΙΝΕΙ ΠΟΤΕ ΣΤΟΝ ΕΛΕΓΧΟ ΤΗΣ ΣΥΝΘΗΚΗΣ
lion2486 Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 Πέρα από αυτά που πρότεινα και σωστά έχεις επιλέξει να τα κάνεις έτσι έχω να προτείνω απλά να βάλεις μια getchar() αντί για system("pause"). Δεν βλέπω κάποιο πρόβλημα με το μάτι.. τι τρέχει; Τρέχει όλο;
arc Δημοσ. 14 Μαρτίου 2014 Δημοσ. 14 Μαρτίου 2014 ΣΤΟ ΟΤΙ ΔΕ ΜΟΥ ΜΠΑΙΝΕΙ ΠΟΤΕ ΣΤΟΝ ΕΛΕΓΧΟ ΤΗΣ ΣΥΝΘΗΚΗΣ Ξε-πάτα το caps lock Με το παρακάτω τι ακριβώς θες να πετύχεις στον κώδικα σου; Ποια η χρησιμότητα του; if(i==0) { temp=head; // krataw ston temp ton prwto arithmo pou diavazw }
gon1332 Δημοσ. 15 Μαρτίου 2014 Δημοσ. 15 Μαρτίου 2014 Με το παρακάτω τι ακριβώς θες να πετύχεις στον κώδικα σου; Ποια η χρησιμότητα του; if(i==0) { temp=head; // krataw ston temp ton prwto arithmo pou diavazw } Αν παρατηρήσεις στην επανάληψη εισαγωγής κόμβων, επιστρέφει το νέο κόμβο στο head. Έτσι για να μην το χάσει το κρατάει στο temp. Βέβαια θα μπορούσε να το κάνει και αλλιώς. Έτσι κι αλλιώς. Εγώ πάντως δε βρήκα κάποιο return για την main.
arc Δημοσ. 15 Μαρτίου 2014 Δημοσ. 15 Μαρτίου 2014 Το ερώτημα μου ήταν για να βοηθήσω τη σκέψη του και να εντοπίσει το λάθος. Με το if(i==0) πρακτικά κράτα σαν τελικό αποτελεσμα στην temp μόνο το πρώτο nobe της συνδεμένης λίστας (που εχει το null). Άρα το τελικό αποτέλεσμα ειναι μόνο το πρώτο nobe, ακομα κι αν βάλει 15 στοιχεία.
gon1332 Δημοσ. 15 Μαρτίου 2014 Δημοσ. 15 Μαρτίου 2014 Το ερώτημα μου ήταν για να βοηθήσω τη σκέψη του και να εντοπίσει το λάθος. Με το if(i==0) πρακτικά κράτα σαν τελικό αποτελεσμα στην temp μόνο το πρώτο nobe της συνδεμένης λίστας (που εχει το null). Άρα το τελικό αποτέλεσμα ειναι μόνο το πρώτο nobe, ακομα κι αν βάλει 15 στοιχεία. Σωστά. Έτσι όταν μπαίνει στην αναδρομική, ικανοποιείται κατευθείαν η πρώτη συνθήκη. Σχεδίασε σε ένα χαρτί τη λίστα σου ακολουθώντας τη σειρά εισαγωγής κόμβων μιας διάτρεξης. 1
traczor Δημοσ. 15 Μαρτίου 2014 Δημοσ. 15 Μαρτίου 2014 αντε ετοοοο..γρηγορα ρε. δεν προλαβαινεις. την τριτη το μεσημερι ληγει η προθεσμια.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα