Video: C Programming Tutorial | Learn C programming | C language 2024
Een array in de C-programmeertaal is een reeks variabelen van hetzelfde type: een tiental int-variabelen, twee of drie dubbele variabelen of een reeks van char variabelen. De array bevat niet allemaal dezelfde waarden. Nee, het is meer een reeks cubbyholes waarin je verschillende waarden vasthoudt.
Een array wordt gedeclareerd zoals elke andere variabele. Het krijgt een type en een naam en dan ook een aantal vierkante haakjes. De volgende verklaring verklaart de highscore-array:
int highscore [];
Deze verklaring is onvolledig; de compiler weet nog niet hoeveel items of elementen zich in de array bevinden. Dus als de array met de hoogste scores drie elementen zou bevatten, zou dit als volgt worden verklaard:
int highscore [3];
Deze array bevat drie elementen, elk met hun eigen int-waarde. De elementen worden op deze manier benaderd:
highscore [0] = 750; highscore [1] = 699; highscore [2] = 675;
Er wordt naar een arrayelement verwezen door zijn indexnummer tussen vierkante haken. Het eerste item is index 0, wat u moet onthouden. In C begin je te tellen op 0, wat zijn voordelen heeft, dus denk niet dat het stom is.
In het voorgaande voorbeeld krijgt het eerste arrayelement, highscore [0], de waarde 750 toegewezen; het tweede element, 699; en de derde, 675.
Na initialisatie wordt een array-variabele gebruikt zoals elke andere variabele in uw code:
var = highscore [0];
Deze instructie slaat de waarde op van array-highscore [0] voor variabele var. Als highscore [0] gelijk is aan 750, is var gelijk aan 750 nadat de instructie is uitgevoerd.
HIGH SCORES, THE AWFUL VERSION
#include int main () {int highscore1, highscore2, highscore3; printf ("Uw hoogste score:"); scanf ("% d", & highscore1); printf ("Uw tweede hoogste score:"); scanf ("% d", & highscore2); printf ("Uw derde hoogste score:"); scanf ("% d", & highscore3); puts ("Dit zijn je hoogste scores"); printf ("# 1% dn", highscore1); printf ("# 2% dn", highscore2); printf ("# 3% dn", highscore3); return (0);}
Oefening 1 : Herschrijf de broncode van High Scores, de Awful Version, voeg een vierde hoge score toe en gebruik een array - maar houd er rekening mee dat uw array vier waarden bevat, niet drie.
Er bestaan veel oplossingen voor Oefening 1. Met de brute-force-oplossing vult u elke array-variabele afzonderlijk in, regel na regel, vergelijkbaar met de broncode in High Scores, de Awful-versie. Een betere, meer inzichtelijke oplossing wordt aangeboden in High Scores, a Better Version.
HOGE SCORES, EEN BETERE VERSIE
# include int main () {int highscore [4]; int x; voor (x = 0; x <4; x ++) {printf ("Uw #% d score:", x + 1); scanf ("% d", & highscore [x]);} puts ("Dit zijn uw hoogste scores"); voor (x = 0; x <4; x ++) printf ("#% d% dn", x + 1, highscore [x]); return (0);}
Het grootste deel van de code van High Scores, een betere versie zou je bekend moeten zijn, zij het de nieuwe array-notatie.De x + 1-argumenten in de printf () -instructies (regels 10 en 16) stellen u in staat om de variabele x in de lus te gebruiken, maar geven de waarde ervan aan beginnend met 1 in plaats van 0. Hoewel C graag begint met nummeren bij 0, geven mensen nog steeds de voorkeur aan te beginnen bij 1.
Oefening 2 : Typ de broncode van High Scores, een betere versie in uw editor en bouw een nieuw project. Voer het uit.
Hoewel de uitvoer van het programma ongeveer hetzelfde is als de uitvoer in Oefening 1, is de methode veel efficiënter, zoals blijkt uit werken Oefening 3:
Oefening 3 : Wijzig de broncode van High Scores, een betere versie zodat de top tien scores worden ingevoerd en weergegeven.
Stel je voor hoe je het antwoord op Oefening 3 zou moeten coderen als je ervoor kiest om arrays niet te gebruiken!
-
Het eerste element van een array is 0.
-
Gebruik bij het declareren van een array het volledige aantal elementen, bijvoorbeeld 10 voor tien elementen. Hoewel de elementen zijn geïndexeerd van 0 tot 9, moet u nog steeds 10 opgeven bij het declareren van de grootte van de array.