Βίντεο: Παραδείγματα με στοίβες στη C. 2024
Ένας πίνακας στη γλώσσα προγραμματισμού C είναι μια σειρά μεταβλητών του ίδιου τύπου: δώδεκα int μεταβλητές, δύο ή τρεις διπλές μεταβλητές ή μια σειρά char μεταβλητές. Ο πίνακας δεν περιέχει όλες τις ίδιες τιμές. Όχι, μοιάζει περισσότερο με μια σειρά από τσιμεντοκονίες στις οποίες διατηρείτε διαφορετικές αξίες.
Ένας πίνακας δηλώνεται σαν οποιαδήποτε άλλη μεταβλητή. Δίνεται ένας τύπος και ένα όνομα και στη συνέχεια επίσης ένα σύνολο αγκυλών. Η ακόλουθη δήλωση δηλώνει τη σειρά κορυφής:
int highscore [].
Αυτή η δήλωση είναι ελλιπής. ο μεταγλωττιστής δεν γνωρίζει ακόμα πόσα στοιχεία ή τα στοιχεία βρίσκονται στη συστοιχία. Αν λοιπόν ο πίνακας highscore κράτησε τρία στοιχεία, θα δηλώνονταν έτσι:
int highscore [3];
Αυτός ο πίνακας περιέχει τρία στοιχεία, καθένα από τα οποία έχει τη δική του τιμή int. Τα στοιχεία έχουν πρόσβαση ως εξής:
highscore [0] = 750; βαθμολογία [1] = 699. highscore [2] = 675.
Ένα στοιχείο συστοιχίας αναφέρεται από τον αριθμό του δείκτη του σε αγκύλες. Το πρώτο στοιχείο είναι ο δείκτης 0, κάτι που πρέπει να θυμάστε. Στο C, αρχίζετε να μετράτε στο 0, το οποίο έχει τα πλεονεκτήματά του, οπότε μην νομίζετε ότι είναι ηλίθιο.
Στο προηγούμενο παράδειγμα, το πρώτο στοιχείο πίνακα, βαθμολογία [0], έχει εκχωρηθεί η τιμή 750. το δεύτερο στοιχείο, 699. και το τρίτο, 675.
Μετά την αρχικοποίηση, μια μεταβλητή πίνακα χρησιμοποιείται όπως οποιαδήποτε άλλη μεταβλητή στον κωδικό σας:
var = highscore [0];
Αυτή η δήλωση αποθηκεύει την τιμή του δείκτη array highscore [0] στη μεταβλητή var. Εάν το highscore [0] είναι ίσο με 750, το var είναι ίσο με 750 μετά την εκτέλεση της εντολής.
ΥΨΗΛΟΙ ΣΤΟΙΧΕΙΟΙ, Η ΤΡΕΧΟΥΣΑ ΕΚΔΟΣΗ
#include int main () {int highscore1, highscore2, highscore3; printf ("Το υψηλότερο σκορ σας:"); scanf ("% d", & highscore1). printf ("Το δεύτερο υψηλότερο σκορ σου:"); scanf ("% d", & highscore2). printf ("Η τρίτη υψηλότερη βαθμολογία σας:"); scanf ("% d", & highscore3). βάζει ("Εδώ είναι τα υψηλά σας αποτελέσματα")? printf ("# 1% dn", highscore1). printf ("# 2% dn", highscore2). printf ("# 3% dn", highscore3). Επιστροφή (0)?}
Άσκηση 1 : Ξαναγράψτε τον πηγαίο κώδικα από τα υψηλά αποτελέσματα, την Αδύναμη έκδοση, προσθέτοντας ένα τέταρτο υψηλό σκορ και χρησιμοποιώντας έναν πίνακα -, όχι τρία.
Υπάρχουν πολλές λύσεις για την Άσκηση 1. Η λύση brute-force έχει γεμίσει κάθε μεταβλητή πίνακα μεμονωμένα, γραμμή μετά τη γραμμή, παρόμοια με τον πηγαίο κώδικα σε High Scores, την Awful Version. Μια καλύτερη, πιο διορατική λύση προσφέρεται στα High Scores, μια καλύτερη έκδοση.
ΥΨΗΛΟΙ ΣΤΟΙΧΕΙΟΙ, ΜΙΑ ΚΑΛΥΤΕΡΗ ΕΚΔΟΣΗ
#include int main () {int highscore [4]; int x; για το (x = 0; x <4; x ++) {printf ("Η βαθμολογία σας #% d:", x + 1); scanf ("% d", & highscore [x]);} puts ("Εδώ είναι τα υψηλά σας αποτελέσματα")? για (x = 0; x <4; x ++) printf ("#% d% dn", x + 1, highscore [x]). επιστροφή (0)?}
Το μεγαλύτερο μέρος του κώδικα από τα υψηλά αποτελέσματα, μια καλύτερη έκδοση πρέπει να είναι εξοικειωμένοι με εσάς, αν και η νέα συμβολική συμβολή.Τα επιχειρήματα x + 1 στις εντολές printf () (Γραμμές 10 και 16) σας επιτρέπουν να χρησιμοποιήσετε τη μεταβλητή x στον βρόχο αλλά εμφανίζετε την τιμή ξεκινώντας με 1 αντί για 0. Παρόλο που ο C αρέσει να αρχίζει την αρίθμηση στο 0, οι άνθρωποι εξακολουθούν να προτιμούν να ξεκινούν από το 1.
Άσκηση 2 : Πληκτρολογήστε τον πηγαίο κώδικα από το High Scoring, μια καλύτερη έκδοση στον επεξεργαστή σας και δημιουργήστε ένα νέο έργο. Τρέξε το.
Παρόλο που η απόδοση του προγράμματος είναι σχεδόν ίδια με την έξοδο στην Άσκηση 1, η μέθοδος είναι πολύ πιο αποτελεσματική, όπως αποδεικνύεται από την εργασία Άσκηση 3:
Άσκηση 3 : Τροποποίηση πηγαίο κώδικα από τα υψηλά αποτελέσματα, μια καλύτερη έκδοση, ώστε να εισαχθούν και να εμφανιστούν οι δέκα πρώτες βαθμολογίες.
Φανταστείτε πώς θα έπρεπε να κωδικοποιήσετε την απάντηση στην Άσκηση 3 αν επιλέξετε να μην χρησιμοποιήσετε συστοιχίες!
-
Το πρώτο στοιχείο ενός πίνακα είναι 0.
-
Όταν δηλώνετε έναν πίνακα, χρησιμοποιήστε τον πλήρη αριθμό στοιχείων, όπως 10 για δέκα στοιχεία. Παρόλο που τα στοιχεία είναι ευρετηριασμένα από 0 έως 9, πρέπει ακόμα να καθορίσετε 10 όταν δηλώνετε το μέγεθος του πίνακα.