1.1 Κατασκευάστε το πρόγραμμα twodim.c που ορίζει στατικά έναν πίνακα A διαστάσεων
6 x 10 και αρχικοποιεί το στοιχείο A[i][j] που βρίσκεται στη γραμμή i και στη στήλη j,
σύμφωνα με τον τύπο:
Φτιάξτε μια συνάρτηση print_array που να εκτυπώνει τον πίνακα κατά γραμμές, με τα
στοιχεία κάθε γραμμής χωρισμένα με στηλογνώμονα (tab).
1.2 Επεκτείνετε το πρόγραμμα twodim.c με μια συνάρτηση print_transposed ώστε να
εκτυπώνει και τον ανάστροφο του πίνακα, δηλαδή αυτόν που έχει στήλες τις γραμμές του
αρχικού και γραμμές τις στήλες του αρχικού (αυτή είναι μια κατεξοχήν άσκηση
προγραμματιστικής συνέντευξης).
Επομένως, αν ένας αρχικός πίνακας 3 x 5 που εκτυπώνεται έτσι:
1 4 6 7 8
5 6 7 1 3
1 0 4 7 2
όταν τον τυπώνετε ανάστροφα, θέλουμε να τυπώνεται 5 x 3, δηλαδή ως εξής:
1 5 1
4 6 0
6 7 4
7 1 7
8 3 2
1.3 Επεκτείνετε το πρόγραμμα twodim.c με μια συνάρτηση print_reverse ώστε να
εκτυπώνει τα στοιχεία κάθε γραμμής του αρχικού πίνακα με αντίστροφη σειρά. Για
παράδειγμα, αν ο αρχικός σας πίνακας είναι και πάλι:
1 4 6 7 8
5 6 7 1 3
1 0 4 7 2
όταν τυπωθεί με αντίστροφη σειρά, θέλουμε να τυπώσει κάτι τέτοιο:
8 7 6 4 1
3 1 7 6 5
2 7 4 0 1
1.4 Επεκτείνετε το πρόγραμμα twodim.c ώστε να εκτυπώνει όλα τα στοιχεία του πίνακα
σε μία σειρά, διασχίζοντάς τον με έναν
οφιοειδή
τρόπο, όπως φαίνεται στο παράδειγμα:
Ο αρχικός πίνακας:
1 4 6 7 8
5 6 7 1 3
1 0 4 7 2
θέλουμε να εκτυπωθεί ως εξής:
1 4 6 7 8 3 1 7 6 5 1 0 4 7 2
Όταν περνάτε στατικό δισδιάστατο πίνακα σε συνάρτηση, η δεύτερη διάσταση πρέπει να
φαίνεται στον τύπο της παραμέτρου (ορίστε τις διαστάσεις με #define). Όλες οι
παραλλαγές είναι δύο εμφωλευμένοι βρόχοι: στον ανάστροφο αλλάζει ποιος δείκτης είναι
εξωτερικός, στην αντίστροφη η εσωτερική μέτρηση πάει προς τα πίσω, και στην οφιοειδή η
φορά της γραμμής εξαρτάται από το αν η γραμμή είναι άρτια ή περιττή.
Αριθμός στον οδηγό: Α12.10
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: lab-lab07-twodim ·
Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab07-twodim.html ·
Markdown (GitHub)