Πρόγραμμα: precious.c
Ένας πίνακας ακεραίων λέγεται πολύτιμος όταν το άθροισμα των στοιχείων της κάθε γραμμής ισούται με το άθροισμα των στοιχείων της κάθε στήλης. Γράψτε ένα πρόγραμμα που δέχεται το όνομα ενός αρχείου που περιέχει έναν πίκανα ως πρώτο όρισμα και τυπώνει εάν ο πίνακας είναι πολύτιμος. Το αρχείο που περιέχει τον πίνακα ξεκινά με τις διαστάσεις του πίνακα και συνεχίζει με τους ακεραίους που αποτελούν τα στοιχεία του. Παραδείγματα εκτέλεσης ακολουθούν:
$ gcc -o precious precious.c
$ cat ring.txt
3 3
8 1 6
3 5 7
4 9 2
$ ./precious ring.txt
My precious!
$ cat not-ring.txt
3 4
6 1 6 2
7 5 1 2
4 9 8 9
$ ./precious not-ring.txt
This matrix is NOT precious.
Για παράδειγμα ο πρώτος πίνακας είναι πολύτιμος καθώς κάθε γραμμή και κάθε στήλη αθροίζει στον ίδιο ακέραιο (το 15).
Διαβάστε πρώτα τις διαστάσεις και δεσμεύστε δυναμικά τον πίνακα με το σωστό μέγεθος· ελέγξτε ότι το αρχείο ανοίγει και ότι περιέχει όσα στοιχεία δηλώνουν οι διαστάσεις. Υπολογίστε το άθροισμα μιας γραμμής ως αναφορά και συγκρίνετε με αυτό όλα τα αθροίσματα γραμμών και στηλών (ο πίνακας δεν χρειάζεται να είναι τετράγωνος).
Αριθμός στον οδηγό: Α12.19
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2023-fall-ex9-q3 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex9-q3.html ·
Markdown (GitHub)