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

Α18.16 · Μετρήσεις Θερμοκρασίας

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #14, Θέμα 3 · Δυσκολία ★★☆ · programming · Κεφάλαια: 18, 19, 17

Πρόγραμμα: templog.c

Γράψτε ένα πρόγραμμα το οποίο παίρνει ως όρισμα ένα αρχείο με μετρήσεις ενός θερμομέτρου στην διάρκεια του χρόνου το οποίο να τυπώνει στην πρότυπη έξοδο την μέση θερμοκρασία όλων των μετρήσεων και στην συνέχεια να τυπώνει όλες τις θερμοκρασίες ταξινομημένες με αύξουσα σειρά με βάση την απόστασή τους από την μέση θερμοκρασία. Το αρχείο με τις μετρήσεις θα έχει την μορφή “ώρα μέτρησης,θερμοκρασία” όπου η θερμοκρασία θα είναι ένας αριθμός κινητής υποδιαστολής. Η μέση θερμοκρασία θέλουμε να τυπωθεί με 3 δεκαδικά ψηφία. Παράδειγμα εκτέλεσης ακολουθεί:

$ cat log.txt
2024-03-07 10:18:27,205.00
2024-03-07 10:19:27,220.50
2024-03-07 10:20:27,221.00
2024-03-07 10:21:27,223.80
2024-03-07 10:22:27,229.32
2024-03-07 10:23:27,230.50
2024-03-07 10:24:27,223.00
2024-03-07 10:25:27,223.50
2024-03-07 10:26:27,220.75
2024-03-07 10:27:27,219.50
$ gcc -o templog templog.c
$ ./templog log.txt
Average temperature: 221.687
2024-03-07 10:20:27,221.00
2024-03-07 10:26:27,220.75
2024-03-07 10:19:27,220.50
2024-03-07 10:24:27,223.00
2024-03-07 10:25:27,223.50
2024-03-07 10:21:27,223.80
2024-03-07 10:27:27,219.50
2024-03-07 10:22:27,229.32
2024-03-07 10:23:27,230.50
2024-03-07 10:18:27,205.00

Υπόδειξη

Διαβάστε κάθε γραμμή, χωρίστε στο κόμμα και κρατήστε την αρχική γραμμή μαζί με τη θερμοκρασία σε ένα struct. Υπολογίστε τον μέσο όρο και ταξινομήστε με qsort κατά fabs(t - μέσος). Το πλήθος των μετρήσεων είναι άγνωστο, οπότε ο πίνακας μεγαλώνει με realloc.

Αριθμός στον οδηγό: Α18.16 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex14-q3 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex14-q3.html · Markdown (GitHub)