Δημοσιεύτηκε: 11 Νοέμ 2011, 19:21
andreask16 έγραψε:Γεια σας,
Είμαι αρχάριος στη γλώσσα C και θα ήθελα να ρωτήσω για κάτι που παρατήρησα.
Είδα ότι γίνεται πιο πάνω να απαιτήσεις ο αριθμός να είναι 7ψήφιος.
Θέλω να γράψω ένα κώδικα όπου να διαβάζει έναν 6ψήφιο αριθμό και σε περίπτωση που δέχεται λιγότερα ή περισσότερα ψηφία να βγάζει μήνυμα σφάλματος και να ξαναδέχεται τιμή από το πληκτρολόγιο μέχρις ότου η τιμή να είναι 6ψήφια.
Μπορεί κάποιος να με βοηθήσει;
Ευχαριστώ!
Οι 6ψήφιοι θετικοί αριθμοί αρχίζουν με τον 100000 και τελειώνουν στον 999999 (υποθέτω μιλάμε για θετικούς), οπότε ο έλεγχος που χρειάζεσαι είναι αν ο αριθμός που διαβάζεις βρίσκεται ή όχι μέσα σε αυτό το εύρος τιμών (θα πρέπει να χρησιμοποιήσεις τους τελεστές σύζευξης ή διάζευξης, δηλαδή && ή ||).
Τον έλεγχο αυτόν θα πρέπει να τον βάλεις ως συνθήκη ενός βρόγχου που θα ζητάει τον αριθμό και θα επαναλαμβάνεται όσο ο αριθμός δεν βρίσκεται στο επιθυμητό εύρος.
Ένα ακόμα σημείο που πρέπει να προσέξεις είναι ο τύπος της μεταβλητής στην οποία θα διαβάζεται ο αριθμός σου. Για να είναι συμβατός ο κώδικάς σου δεν μπορείς να χρησιμοποιήσεις τον τύπο int, διότι το στάνταρ ορίζει πως πρέπει να μπορεί να απεικονίσει τουλάχιστον ότι χωράει σε 16bits (-32767 έως 32767 signed, 0 έως 65535 unsigned) που σημαίνει πως είναι απόλυτα θεμιτό για έναν compiler να μην απεικονίζει μεγαλύτερους αριθμούς από αυτές τις τιμές σε μεταβλητές τύπου int.