Πρόγραμμα: bestmatch.c (25 μονάδες)
Γράψτε ένα πρόγραμμα που διαβάζει ένα σύνολο από ονόματα ακολουθούμενα από έναν αριθμό που δηλώνει πόσο καλά μας ταιριάζει αυτό το άτομο και τυπώνει τα ονόματα από το μεγαλύτερο στο μικρότερο ταξινομημένα. Τα δεδομένα περιέχονται σε αρχείο που δίνεται ως πρώτο όρισμα. Το αρχείο θα περιέχει κάθε όνομα σε μια γραμμή της μορφής “όνομα,σκορ”. Ένα παράδειγμα εκτέλεσης ακολουθεί:
$ cat names.txt
Alex,3.4
Casey,9.1
Jordan,2
Taylor,5.3
Morgan,1.7
Riley Avery,6.16
Jamie,0
Quinn,-1.1
Skyler,5.88
$ gcc -o bestmatch bestmatch.c
$ ./bestmatch names.txt
Casey,9.1
Riley Avery,6.16
Skyler,5.88
Taylor,5.3
Alex,3.4
Jordan,2
Morgan,1.7
Jamie,0
Quinn,-1.1
Κρατήστε κάθε εγγραφή σε ένα struct (όνομα, σκορ) μέσα σε πίνακα που μεγαλώνει δυναμικά, αφού δεν ξέρετε πόσες γραμμές έχει το αρχείο, και ταξινομήστε με qsort και δική σας συνάρτηση σύγκρισης σε φθίνουσα σειρά. Τα ονόματα μπορεί να έχουν κενά, οπότε χωρίστε στο κόμμα. Το σκορ τυπώνεται όπως γράφτηκε (2, 6.16), άρα ίσως σας βολεύει να κρατήσετε και το αρχικό κείμενο. Ελέγξτε το πλήθος των ορισμάτων, αν άνοιξε το αρχείο και τις κακοσχηματισμένες γραμμές.
Αριθμός στον οδηγό: Α18.20
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2023-fall-ex0-q3 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex0-q3.html ·
Markdown (GitHub)