World Cup 2026 (35 Μονάδες)
Το παγκόσμιο κύπελλο ποδοσφαίρου μόλις έφτασε! Όλοι και όλες είμαστε έτοιμοι/ες για να δούμε τους αγώνες αλλά διαπιστώσαμε πως κάτι λείπει: δεν έχουμε ένα γρήγορο τρόπο να υπολογίζουμε την κατάταξη των ομάδων μετά τα αποτελέσματα των αγώνων. Αυτό είναι και το πρόβλημα που καλούμαστε να λύσουμε σε αυτό το θέμα.
Γράψτε ένα πρόγραμμα C το οποίο διαβάζει από την πρότυπη είσοδο όλα τα αποτελέσματα
αγώνων ανάμεσα σε ομάδες και στο τέλος τυπώνει τις ομάδες ταξινομημένες σε φθίνουσα σειρά
με βάση την βαθμολογία τους. Σε περίπτωση ισοβαθμίας, χρησιμοποιούμε την διαφορά γκολ για
να αποφασίσουμε ποια ομάδα είναι πρώτη (σε περίπτωση ίδιας διαφοράς γκολ, οι ομάδες
ταξινομούνται αλφαβητικά). Μια ομάδα παίρνει 3 βαθμούς σε περίπτωση νίκης, 1 βαθμό σε
περίπτωση ισοπαλίας και 0 βαθμούς εάν χάσει. Το αρχείο θα περιέχει έναν αγώνα ανά γραμμή
και η μορφή του θα είναι: ΟΜΑΔΑ1-ΟΜΑΔΑ2,ΓΚΟΛ1-ΓΚΟΛ2 όπου ΓΚΟΛ1 είναι τα γκολ που
έβαλε η ΟΜΑΔΑ1 και αντίστοιχα για τα ΓΚΟΛ2/ΟΜΑΔΑ2.
Ποια είναι η χρονική και η χωρική πολυπλοκότητα του αλγορίθμου σας (10/30 της βαθμολογίας); Αιτιολογήστε την απάντησή σας και εξηγήστε την σημασία κάθε μεταβλητής που θα χρησιμοποιήσετε.
Παράδειγμα εκτέλεσης ακολουθεί:
$ cat games.txt
Germany-South Korea,4-2
Mexico-New Zealand,3-0
Ecuador-France,1-5
Argentina-Morocco,3-1
Turkey-Croatia,2-2
Portugal-Senegal,2-3
Portugal-New Zealand,2-0
Ecuador-Croatia,1-2
France-Senegal,1-0
South Korea-Argentina,0-2
Turkey-Germany,2-2
Mexico-Morocco,3-3
$ ./scoreboard < games.txt
France, 6, (6 - 1)
Argentina, 6, (5 - 1)
Mexico, 4, (6 - 3)
Germany, 4, (6 - 4)
Croatia, 4, (4 - 3)
Portugal, 3, (4 - 3)
Senegal, 3, (3 - 3)
Turkey, 2, (4 - 4)
Morocco, 1, (4 - 6)
South Korea, 0, (2 - 6)
Ecuador, 0, (2 - 7)
New Zealand, 0, (0 - 5)
Κρατήστε έναν πίνακα από struct (όνομα, βαθμοί, γκολ υπέρ, γκολ κατά) και, για κάθε
γραμμή, βρείτε ή προσθέστε τις δύο ομάδες. Τα ονόματα περιέχουν κενά (π.χ. “South
Korea”), οπότε διαβάστε ολόκληρη τη γραμμή με fgets και χωρίστε την στα - και
, αντί για %s. Για την ταξινόμηση γράψτε μια συνάρτηση σύγκρισης με τρία
κριτήρια (βαθμοί, διαφορά γκολ, strcmp) για το qsort, και σκεφτείτε το κόστος της
αναζήτησης ομάδας για την πολυπλοκότητα.
Αριθμός στον οδηγό: Α19.12
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2026-jun-q4 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2026-jun-q4.html ·
Markdown (GitHub)