g1wrg0s
Επιφανές μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Η αναδρομη εχει αυτο το σκοπο.
π.χ
Προβλημα _______λυση προβληματος
| _______________|
υποπροβλημα __ λυση υποπρο.
| ______________ |
υποπροβλημα ---->/
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Η κληση min ποιο υποπροβλημα καλειται να λυσει ; Για ποιο λογο θες να τη καλεις ;
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Παμε στο επομενο ζητημα. Σκεψου οτι αν μια συναρτηση καλει τον εαυτο της επ απειρον απλα το προγραμμα σου θα τρεχει μεχρι να crashαρει. Αρα χρειαζεσαι μια συνθηκη τερματισμου η οποια θα λεει "δε μπορω να σπασω το προβλημα σε αλλο μικροτερο υποπροβλημα, γυρνα πισω". Εσυ ποια συνθηκη εχεις στον κωδικα σου που να αποτρεπει το προγραμμα να τρεχει για παντα ;
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Το πρόβλημα το έχω στην συνάρτηση min(double T[],int m,int *index)... Δεν ξέρω πως να την κάνω με αναδρομή..Code:#include <stdio.h> #include "simpio.h" #include "genlib.h" #define n 50 double min(double T[], int m,int *index); int main(void) { double T[n]; double a; int m; int index; int i; printf("Poses theseis apo ton pinaka na desmeutoun? "); scanf("%d", &m); printf("Dwse ta stoixeia tou pinaka T \n"); for(i=0;i<m;i++) { scanf("%d",T[i]); } a = min(T,m,&index); printf("To elaxisto einai to %ld kai vrisketai sthn %dh thesh",a,index); system("pause"); } double min(double T[],int m,int *index) { double a; int i; for(i=0;i<m;i++) { if(i=0) { a = T[i]; *index = i; } else { if(a < T[i]) { a = min(T, m, index); } } } return a; }
αρχικα, φτιαχνω το κωδικα σου για να μπορει να διαβαζεται
και πριν μπουμε στα του κωδικα σου και δεδομενου οτι εχεις κατανοησει την εννοια της αναδρομης. Για ποιο λογο καλεις ξανα την min μεσα στο body της min ;
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
κωδικας[προσεχε αυτο->/code])
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
g1wrg0s
Επιφανές μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 10 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.