Αποστολέας Θέμα: βοηθεια στην C!!  (Αναγνώστηκε 202 φορές)

Νικολας Πεγιος

  • Νέος
  • *
  • Μηνύματα: 5
βοηθεια στην C!!
« στις: 11 Νοε 2021, 01:42:50 πμ »
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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 208
Απ: βοηθεια στην C!!
« Απάντηση #1 στις: 11 Νοε 2021, 04:28:36 μμ »
Το πρόβλημα βρίσκεται στις μεταβλητές 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);
Ελπίζω να βοήθησα.


Νικολας Πεγιος

  • Νέος
  • *
  • Μηνύματα: 5
Απ: βοηθεια στην C!!
« Απάντηση #2 στις: 12 Νοε 2021, 12:56:16 μμ »
σας ευχαριστω!!!