BTSGeo Δημοσ. 27 Νοεμβρίου 2012 Share Δημοσ. 27 Νοεμβρίου 2012 (επεξεργασμένο) εχω γραψει εναν απλο κώδικα ο οποίος στο σώμα της main κανει κληση μιας συναρτησης η οποια απ' οτι φαινεται δεν εκτελειται ποτε γιατι ??? μηπως καποιο προβλημα εμβελειας? εβαλα για να ειμαι σιγουρος αρκετες μεταβλητες ως global , παρ' ολα αυτα δεν δουλευει το προγραμμα.... εδω παραθετω και τον κωδικα: > #include <stdio.h> #include <stdlib.h> #include <math.h> void print(long n,char c); int ptrn; long n; long id=0; long a; int main() { long sze,id; printf("give me the sze\n"); scanf("%ld",&sze); long i=sze; ptrn=0; do { i=i/2; ++ptrn; }while (i!=1); --ptrn; a=pow(2,ptrn); printf("a is %d",a); print(a,'*'); system("pause"); } void print(long n,char c) { int i=0; for (i;i==n;i++) printf("%c",c); return;} Επεξ/σία 27 Νοεμβρίου 2012 από BTSGeo Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Star_Light Δημοσ. 27 Νοεμβρίου 2012 Share Δημοσ. 27 Νοεμβρίου 2012 Το n δεν βλεπω να αρχικοποιείται κάπου. Βασικα επειδη ειναι global παιρνει την τιμη 0 εφοσον δεν της δινεις εσυ καποια τιμή αλλη. Το θελεις αυτο ή οχι? ΟΠοτε θα κληθει η συναρτηση θα μπει μια φορα μεσα στον βροχο επειδη το i ειναι ισο με n δηλαδη με 0 . Τι ακριβως θες να κανεις ? Να μαθεις και να καταλαβεις την εμβελεια των global ? Αυτο τον τιτλο εχεις βαλει..... τυχαιος ειναι? Μια παραλειψη ειναι οτι δηλωνεις την main τυπου int και δεν εχεις ενα return οταν τελειωνει που να επιστρεφει μια τιμη στο λειτουργικο συστημα. πχ return 0; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
BTSGeo Δημοσ. 27 Νοεμβρίου 2012 Μέλος Share Δημοσ. 27 Νοεμβρίου 2012 αν αλλαξω το προγραμμα ετσι : > #include <stdio.h> #include <stdlib.h> #include <math.h> void print(long n,char c); int ptrn; long id=0; long a; int main() { long sze,id; printf("give me the sze\n"); scanf("%ld",&sze); long i=sze; ptrn=0; do { i=i/2; ++ptrn; }while (i!=1); --ptrn; a=pow(2,ptrn); printf("a is %d",a); print(a,'*'); system("pause"); return 0; } void print(long a,char c) { int i=0; for (i;i==a;i++) printf("%c",c); return;} το προβλημα μου παραμενει θελω απλα να μαθω λιγα περισσοτερα πραγματα για τις global μεταβλητες και τι συμβαινει με αυτες στην αναδρομη (εχω ηδη διαπιστωσει οτι κανοντας αλλαγες διατηρουν την τελευταια αλλαγη πραγμα μη επιθυμητο) και τι μπορω να κανω για να μην αλλαζει η τιμη των global παρα μονο κατα την εισοδο στην αναδρομη μου.Επισης θα ηθελα να μαθω γιατι δεν παιρνει ως ορισμα η συναρτηση μου το α να ισουται με pow(2,ptrn) ??? τρωω το κεφαλι μου ολο το απογεμα ψαχνοντας και δεν το βρισκω... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
albNik Δημοσ. 27 Νοεμβρίου 2012 Share Δημοσ. 27 Νοεμβρίου 2012 Αυτό δεν εκτελείται ποτέ ( Ίσως 1 φορά αν i=a=0) >for (i;i==a;i++) printf("%c",c); Γράψε i<a Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
BTSGeo Δημοσ. 28 Νοεμβρίου 2012 Μέλος Share Δημοσ. 28 Νοεμβρίου 2012 ευχαριστω για την απαντηση σου το εχω ηδη φτιαξει το προγραμμα και οντως εκανα κατι αντιστοιχο !!! +1 απο μενα Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα