Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Κ18.5 · Συνάρτηση σύγκρισης για αύξουσα ταξινόμηση

Kahoot «Ταξινόμηση και Δομές» · Δυσκολία ★★★ · multiple-choice · 12% σωστές απαντήσεις (127 απαντήσεις στο αμφιθέατρο) · Κεφάλαια: 18, 17, 19

Θέλω να ταξινομήσω σε αύξουσα σειρά βαθμολογίας τον πίνακα struct student[1024]. Χρησιμοποιώ τη συνάρτηση σύγκρισης:

Συχνή παρανόηση

Το 43% επέλεξε s2.grade - s1.grade, αντιστρέφοντας τη σύμβαση: αρνητική τιμή σημαίνει ότι το s1 μπαίνει πρώτο, οπότε η αφαίρεση s2 - s1 δίνει φθίνουσα σειρά. Οι επιλογές με == και ^ (20% η καθεμία) δεν δίνουν καν πρόσημο που να λέει ποιο στοιχείο προηγείται.

Υπόδειξη

Η συνάρτηση σύγκρισης της qsort επιστρέφει αρνητικό, μηδέν ή θετικό· σκεφτείτε ποιο πρόσημο σημαίνει «το πρώτο όρισμα πάει πριν από το δεύτερο» και δοκιμάστε με δύο βαθμούς, π.χ. 5 και 8.

Αριθμός στον οδηγό: Κ18.5 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: kahoot-qsort-compare-ascending · Σύνδεσμος: https://progintro.github.io/study/questions/kahoot/kahoot-qsort-compare-ascending.html · Markdown (GitHub)