Video: C Programmieren für Anfänger Tutorial #17 - Arrays 2024
Ein -Array in der Programmiersprache C ist eine Reihe von Variablen des gleichen Typs: ein Dutzend int-Variablen, zwei oder drei doppelte Variablen oder ein String von Char-Variablen. Das Array enthält nicht alle die gleichen Werte. Nein, es ist eher wie eine Reihe von Kammern, in die Sie verschiedene Werte stecken.
Ein Array wird wie jede andere Variable deklariert. Es wird ein Typ und ein Name und dann auch eine Reihe von eckigen Klammern gegeben. Die folgende Anweisung deklariert das Highscore-Array:
int Highscore [];
Diese Erklärung ist unvollständig; Der Compiler weiß noch nicht, wie viele Elemente oder Elemente im Array enthalten sind. Wenn also das Highscore-Array drei Elemente enthält, würde es wie folgt deklariert:
int highscore [3];
Dieses Array enthält drei Elemente, von denen jedes einen eigenen int-Wert hat. Die Elemente werden folgendermaßen aufgerufen:
Highscore [0] = 750; Highscore [1] = 699; Highscore [2] = 675;
Auf ein Array-Element wird durch seine Indexnummer in eckigen Klammern verwiesen. Das erste Element ist der Index 0, an den Sie sich erinnern müssen. In C fangen Sie an, bei 0 zu zählen, was seine Vorteile hat, also glaube nicht, dass es dumm ist.
Im vorhergehenden Beispiel wird dem ersten Array-Element, highscore [0], der Wert 750 zugewiesen. das zweite Element 699; und der dritte, 675.
Nach der Initialisierung wird eine Array-Variable wie jede andere Variable in Ihrem Code verwendet:
var = highscore [0];
Diese Anweisung speichert den Wert des Array-Elements highscore [0] in der Variablen var. Wenn highscore [0] gleich 750 ist, ist var gleich 750, nachdem die Anweisung ausgeführt wurde.
HIGH SCORES, DIE WÜTENDE VERSION
#include int main () {int highscore1, highscore2, highscore3; printf ("Ihre höchste Punktzahl:"); scanf ("% d" und "highscore1"); printf ("Ihre zweithöchste Punktzahl:"); scanf ("% d" und Highscore2); printf ("Ihre dritthöchste Punktzahl:"); scanf ("% d" und Highscore3); puts ("Hier sind deine Highscores"); printf ("# 1% dn", Highscore1); printf ("# 2% dn", Highscore2); printf ("# 3% dn", Highscore3); return (0);}
Übung 1 : Schreiben Sie den Quellcode von High Scores, der Awful Version neu, fügen Sie einen vierten Highscore hinzu und verwenden Sie ein Array - aber denken Sie daran, dass Ihr Array vier Werte enthält, nicht drei.
Für Übung 1 gibt es viele Lösungen. Mit der Brute-Force-Lösung können Sie jede Array-Variable Zeile für Zeile einzeln ausfüllen, ähnlich dem Quellcode in High Scores, der Awful Version. Eine bessere, aufschlussreichere Lösung bietet High Scores, eine bessere Version.
HIGH SCORES, EINE BESSERE VERSION
#include int main () {int highscore [4]; int x; für (x = 0; x <4; x ++) {printf ("Ihre #% d-Punktzahl:", x + 1); scanf ("% d", & highscore [x]);} puts ("Hier sind Ihre Highscores"); für (x = 0; x <4; x ++) printf ("#% d% dn", x + 1, Highscore [x]); return (0);}
Der größte Teil des Codes aus High Scores, einer besseren Version, sollte Ihnen bekannt sein, auch wenn die neue Array-Notation.Die x + 1-Argumente in den printf () -Anweisungen (Zeilen 10 und 16) ermöglichen es Ihnen, die Variable x in der Schleife zu verwenden, ihren Wert jedoch mit 1 anstelle von 0 anzuzeigen. Bei 0 bevorzugen es die Menschen immer noch bei 1.
Übung 2 : Geben Sie den Quellcode von High Scores, einer besseren Version, in Ihren Editor ein und erstellen Sie ein neues Projekt. Starte es.
Obwohl die Ausgabe des Programms ziemlich genau der Ausgabe in Übung 1 entspricht, ist die Methode weitaus effizienter, wie Übung 3 zeigt:
Übung 3 : Ändern Sie die Quellcode aus Highscores, eine bessere Version, so dass die Top-Ten-Scores eingegeben und angezeigt werden.
Stellen Sie sich vor, wie Sie die Antwort auf Übung 3 codieren müssten, wenn Sie Arrays nicht verwenden möchten!
-
Das erste Element eines Arrays ist 0.
-
Verwenden Sie beim Deklarieren eines Arrays die vollständige Anzahl von Elementen, z. B. 10 für zehn Elemente. Obwohl die Elemente von 0 bis 9 indiziert sind, müssen Sie beim Deklarieren der Größe des Arrays immer noch 10 angeben.