Καλησπέρα , έχω ενα πρόβλημα προγραμματισμού το οποίο παιδεύω εδω και μια βδομάδα χωρίς καποια πρόοδο (προγραμματίζω σε C ) . Αν κάποιος έχει εμπείρια σε προγραμματισμό , ας δώσει κάποια ιδέα ή αν του είναι εύκολο και έχει χρόνο ας ανεβασει τη λύση . Θα επισυνάψω ότι εχω κάνει μεχρι στιγμής μαζι με την εκφώνηση
Για την άσκηση αυτή, ονομάζουμε λέξη μια ακολουθία χαρακτήρων που δεν περιέχει το κενό. Θεωρήστε ότι κάθε λέξη δεν υπερβαίνει τους 20 χαρακτήρες και ότι δεν μπορεί να κόβεται σε δύο γραμμές.
Γράψτε ένα πρόγραμμα το οποίο θα μορφοποιεί κείμενα. Το αρχικό κείμενο θα διαβάζεται από το πληκτρολόγιο και το τελικό (μορφοποιημένο) κείμενο θα τυπώνεται στην οθόνη. Η μορφοποίηση πρέπει να γίνεται προσθέτοντας ή αφαιρώντας κενά διαστήματα μεταξύ των λέξεων, με κατάλληλο τρόπο.
Συγκεκριμένα, στο τελικό κείμενο:
Το μήκος κάθε γραμμής (εκτός ίσως της τελευταίας) πρέπει να είναι 60 χαρακτήρες. Κάθε γραμμή (εκτός ίσως της τελευταίας) πρέπει να στοιχίζεται και στο αριστερό και στο δεξιό περιθώριο. Τα κενά μεταξύ των λέξεων πρέπει να ισοκατανέμονται (κατά το δυνατόν). Αν ονομάσουμε διάκενο το πλήθος των κενών διαστημάτων μεταξύ δύο διαδοχικών λέξεων, τότε πρέπει σε κάθε γραμμή:
το μεγαλύτερο διάκενο να διαφέρει από το μικρότερο το πολύ κατά ένα κενό διάστημα, και αν ένα διάκενο είναι μεγαλύτερο από κάποιο άλλο, τότε πρέπει να βρίσκεται δεξιότερα.