Προς το περιεχόμενο
  • 0
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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

4 απαντήσεις σε αυτή την ερώτηση

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

  • 0

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

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

 

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

 

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

 

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

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

Κοινοποιήστε αυτήν την ανάρτηση


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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

ευχαριστω για την απαντηση σου το εχω ηδη φτιαξει το προγραμμα και οντως εκανα κατι αντιστοιχο !!! +1 απο μενα

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.