3.1 Κατασκευάστε το πρόγραμμα grades.c και ορίστε μία αυτοαναφορική δομή λίστας
ακεραίων αριθμών.
typedef struct listnode *Listptr;
struct listnode {
int data;
Listptr next;
};
3.2 Κατασκευάστε τη συνάρτηση:
void insert_at_start(Listptr *ptr, int grade);
Η συνάρτηση θα προσθέτει έναν βαθμό στην αρχή της λίστας. Τροποποιήστε τη main για να
διαβάζει βαθμούς από το πληκτρολόγιο και να τους προσθέτει στη λίστα.
3.3 Κατασκευάστε τη συνάρτηση:
float average(Listptr ptr);
Η συνάρτηση θα διασχίζει τα περιεχόμενα της λίστας και θα υπολογίζει τον μέσο όρο των βαθμών που είναι αποθηκευμένοι σε αυτήν.
Η insert_at_start αλλάζει την κεφαλή της λίστας, γι’ αυτό παίρνει δείκτη στον δείκτη
της κεφαλής: δεσμεύει νέο κόμβο, τον κάνει να δείχνει στην παλιά κεφαλή και μετά
ενημερώνει την κεφαλή. Η average προχωρά ακολουθώντας τα next μέχρι το NULL,
μετρώντας και αθροίζοντας. Σκεφτείτε τι πρέπει να επιστρέψει για κενή λίστα.
Αριθμός στον οδηγό: Α21.7
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: lab-lab09-grades ·
Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab09-grades.html ·
Markdown (GitHub)