μαρια123 Δημοσ. 27 Μαΐου 2012 Δημοσ. 27 Μαΐου 2012 καλησπερα και παλι!! εχω προβλημα! μου δινετε αυτο το προγραμμα #include <stdio.h> void makeDouble(int y) { y = y * 2; } main () { int x; printf("Dwse ari8mo"); scanf("%d", &x); makeDouble(x); printf("H nea timi tis metablitis einai %d", x); } και εγω πρεπει να εξηγησω γιατι η συναρτηση που περιεχει δεν διπλασιαζει την τιμη της παραμετρου που της δινουμε. αλλα οσο και να ψαξω δεν μπορω να βρω που ειναι το λαθος
nspyrou Δημοσ. 27 Μαΐου 2012 Δημοσ. 27 Μαΐου 2012 καλησπερα και παλι!! εχω προβλημα! μου δινετε αυτο το προγραμμα #include <stdio.h> void makeDouble(int y) { y = y * 2; } main () { int x; printf("Dwse ari8mo"); scanf("%d", &x); makeDouble(x); printf("H nea timi tis metablitis einai %d", x); } και εγω πρεπει να εξηγησω γιατι η συναρτηση που περιεχει δεν διπλασιαζει την τιμη της παραμετρου που της δινουμε. αλλα οσο και να ψαξω δεν μπορω να βρω που ειναι το λαθος Για να διπλασιαστεί η τιμή πρέπει να περάσει by reference, ώστε να επιστραφεί το αποτέλεσμα στην main. Στη προκειμένη περίπτωση η makeDouble δουλεύει στο local scope. Αρα δεν επιστρέφεται στη main. Δες το με debug και θα δείς.
ThanosA Δημοσ. 27 Μαΐου 2012 Δημοσ. 27 Μαΐου 2012 #include <stdio.h> int makeDouble(int y) { y = y * 2; return y; } int main () { int x; printf("Dwse ari8mo\n"); scanf("%d", &x); printf("H nea timi tis metablitis einai %d",makeDouble(x)); } Το θεμα σου ειναι οτι δεν ειχες δηλωμενη την συναρτηση να επιστρεφει τον αριθμο.Την βαζεις αντι για void int και στο τελος της συναρτησης return y; για να της δωσει την τιμη που εχει υπολογισει. Στην printf καλεις σαν ορισμα αμεσως την συναρτηση σου ..
nspyrou Δημοσ. 27 Μαΐου 2012 Δημοσ. 27 Μαΐου 2012 Έχεις κάνει post το ίδιο θέμα 2 φορές, διέγραψε το ένα από τα δύο ...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα