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 (ευχαριστω οποιον κατσει και ασχοληθει λιγο :))
Το πρόβλημα βρίσκεται στις μεταβλητές 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);
Ελπίζω να βοήθησα.
σας ευχαριστω!!!