Γενικά > Γενικά Παιδαγωγικά, Επιστημονικά και Τεχνικά Θέματα

βοηθεια στην C!!

(1/1)

Νικολας Πεγιος:
include<stdio.h>


int main()

 {

int Etos;
char Mhnas,Arxiko;
float Ypsos;

 printf("Dwse Etos Mhna Arxiko Ypsos\n\n");

scanf("%d %s %s %f",&Etos,&Mhnas,&Arxiko,&Ypsos);

printf("%d %s %s %f",Etos,Mhnas,Arxiko,Ypsos  );



   return 0;
}


Γεια σας ειμαι ενας πρωτοετης φοιτητης και θα ηθελα να γνωριζω για ποιον λογο δεν μου εμφανιζει τα αποτελεσματα η printf (ευχαριστω οποιον κατσει και ασχοληθει λιγο :))

dski:
Το πρόβλημα βρίσκεται στις μεταβλητές Mhnas και Arxiko. Τις δηλώνεις τύπου char που στην ουσία είναι τύπος ακεραίου και χρησιμοποιείται για την αποθήκευση ενός χαρακτήρα ενώ στην printf ζητάς να τυπωθεί %s δηλαδή string (συμβολοσειρά) που περιμένει δείκτη σε char (char *)

Είτε θα αλλάξεις την οδηγία από %s σε %c (οπότε η μεταβλητή θα δέχεται έναν χαρακτήρα μόνο) είτε, αν θες να μπορείς να εισάγεις κάποια συμβολοσειρά (δύο ή περισσότερων χαρακτήρων), αλλάζεις τη δήλωση σε π.χ.:


--- Κώδικας: ---char Mhnas[100], Arxiko[100];
--- Τέλος κώδικα ---

δηλαδή τις μετατρέπεις σε πίνακες χαρακτήρων και τροποποιείς την scanf αφαιρώντας το & από τις μεταβλητές Mhnas και Arxiko (αφού το όνομα του πίνακα αντιστοιχεί στη διεύθυνση του 1ου του στοιχείου):


--- Κώδικας: ---scanf("%d %s %s %f",&Etos,Mhnas,Arxiko,&Ypsos);
--- Τέλος κώδικα ---

Ελπίζω να βοήθησα.

Νικολας Πεγιος:
σας ευχαριστω!!!

Πλοήγηση

[0] Λίστα μηνυμάτων

Μετάβαση στην πλήρη έκδοση