Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Arrays met Structs | Structs en Geheugen Begrijpen
C-Structs Beheersen

bookArrays met Structs

Het aanmaken van een array van structuren is niet anders dan het aanmaken van een array met andere datatypes.

Het benaderen van de elementen van zo'n array gebeurt op dezelfde manier als bij gewone arrays, via indexen.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Als voorbeeld maken we een array van structuren aan die informatie over een persoon opslaat.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Elk element van de people array vertegenwoordigt een afzonderlijke Person structuur. We kunnen de velden van een specifieke persoon benaderen met behulp van de array-index, bijvoorbeeld: people[0].name of people[1].age.

Vervolgens doorlopen we de gehele array met een for-lus en tonen we de informatie van elke persoon op het scherm.

Het gebruik van arrays van structuren maakt het mogelijk om meerdere objecten van hetzelfde type op één plek op te slaan en deze eenvoudig via de index te benaderen, wat vooral handig is bij het werken met grote datasets.

Taak

Swipe to start coding

Implementeer een functie calculateWarehouseTotal die de totale waarde berekent van alle producten opgeslagen in een magazijn. Elk product heeft een naam, hoeveelheid en prijs. De functie moet door de array van producten itereren en de som berekenen van quantity * price voor alle items.

  1. Maak binnen de functie calculateWarehouseTotal een variabele total en initialiseer deze met 0.0f.
  2. Gebruik een for-lus om te itereren van index 0 tot n.
  3. Vermenigvuldig voor elk product de quantity met de price en tel het resultaat op bij total.
  4. Retourneer de uiteindelijke waarde van total als de totale magazijnwaarde.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookArrays met Structs

Veeg om het menu te tonen

Het aanmaken van een array van structuren is niet anders dan het aanmaken van een array met andere datatypes.

Het benaderen van de elementen van zo'n array gebeurt op dezelfde manier als bij gewone arrays, via indexen.

struct Person {
    char name[50];
    int age;
    double height;
};

struct Person people[2];

Als voorbeeld maken we een array van structuren aan die informatie over een persoon opslaat.

main.c

main.c

copy
12345678910111213141516171819202122232425262728293031323334353637
#include <stdio.h> #include <string.h> // structure definition struct Person { char name[50]; int age; double height; }; int main() { // declaring an array of structures struct Person people[3]; strcpy(people[0].name, "Alice"); people[0].age = 25; people[0].height = 1.75; strcpy(people[1].name, "Bob"); people[1].age = 30; people[1].height = 1.80; strcpy(people[2].name, "Charlie"); people[2].age = 35; people[2].height = 1.70; // output information about people from the array for (int i = 0; i < 3; ++i) { printf("Person %d:\n", i + 1); printf("Name: %s\n", people[i].name); printf("Age: %d\n", people[i].age); printf("Height: %.2f\n", people[i].height); printf("\n"); } return 0; }

Elk element van de people array vertegenwoordigt een afzonderlijke Person structuur. We kunnen de velden van een specifieke persoon benaderen met behulp van de array-index, bijvoorbeeld: people[0].name of people[1].age.

Vervolgens doorlopen we de gehele array met een for-lus en tonen we de informatie van elke persoon op het scherm.

Het gebruik van arrays van structuren maakt het mogelijk om meerdere objecten van hetzelfde type op één plek op te slaan en deze eenvoudig via de index te benaderen, wat vooral handig is bij het werken met grote datasets.

Taak

Swipe to start coding

Implementeer een functie calculateWarehouseTotal die de totale waarde berekent van alle producten opgeslagen in een magazijn. Elk product heeft een naam, hoeveelheid en prijs. De functie moet door de array van producten itereren en de som berekenen van quantity * price voor alle items.

  1. Maak binnen de functie calculateWarehouseTotal een variabele total en initialiseer deze met 0.0f.
  2. Gebruik een for-lus om te itereren van index 0 tot n.
  3. Vermenigvuldig voor elk product de quantity met de price en tel het resultaat op bij total.
  4. Retourneer de uiteindelijke waarde van total als de totale magazijnwaarde.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
single

single

some-alt