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

Εμβελεια και μεταβλητες


BTSGeo

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

Δημοσ. (επεξεργασμένο)

εχω γραψει εναν απλο κώδικα ο οποίος στο σώμα της 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;}



 

Επεξ/σία από BTSGeo
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το n δεν βλεπω να αρχικοποιείται κάπου. Βασικα επειδη ειναι global παιρνει την τιμη 0 εφοσον δεν της δινεις εσυ καποια τιμή αλλη.

Το θελεις αυτο ή οχι?

 

ΟΠοτε θα κληθει η συναρτηση θα μπει μια φορα μεσα στον βροχο επειδη το i ειναι ισο με n δηλαδη με 0 .

 

Τι ακριβως θες να κανεις ? Να μαθεις και να καταλαβεις την εμβελεια των global ? Αυτο τον τιτλο εχεις βαλει..... τυχαιος ειναι?

 

Μια παραλειψη ειναι οτι δηλωνεις την main τυπου int και δεν εχεις ενα return οταν τελειωνει

που να επιστρεφει μια τιμη στο λειτουργικο συστημα. πχ return 0;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

αν αλλαξω το προγραμμα ετσι :

>
#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) ??? τρωω το κεφαλι μου ολο το απογεμα ψαχνοντας και δεν το βρισκω...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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