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

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

Δημοσ.

καλησπερα και παλι!! εχω προβλημα! μου δινετε αυτο το προγραμμα

#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);

}

και εγω πρεπει να εξηγησω γιατι η συναρτηση που περιεχει δεν διπλασιαζει την τιμη της παραμετρου που της δινουμε. αλλα οσο και να ψαξω δεν μπορω να βρω που ειναι το λαθος

Δημοσ.

καλησπερα και παλι!! εχω προβλημα! μου δινετε αυτο το προγραμμα

#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 και θα δείς.

Δημοσ.

#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 καλεις σαν ορισμα αμεσως την συναρτηση σου ..

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

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

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

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

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

Σύνδεση

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

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