Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arrayer med Structs | Forståelse af Structs og Hukommelse
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Beherskelse af C Structs

bookArrayer med Structs

At oprette et array af strukturer er ikke anderledes end at oprette et array med andre datatyper.

Adgang til elementerne i et sådant array foregår på samme måde som for almindelige arrays via indekser.

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

struct Person people[2];

Som et eksempel kan vi oprette et array af strukturer, der gemmer information om en person.

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; }

Hvert element i people-arrayet repræsenterer en separat Person-struktur. Felterne for en bestemt person kan tilgås ved hjælp af array-indekset, for eksempel: people[0].name eller people[1].age.

Derefter gennemløbes hele arrayet med en for-løkke, og informationen om hver person udskrives på skærmen.

Ved at bruge arrays af strukturer kan du gemme flere objekter af samme type ét sted og nemt tilgå dem via indeks, hvilket især er nyttigt ved arbejde med store datasæt.

Opgave

Swipe to start coding

Implementér en funktion calculateWarehouseTotal, der beregner den samlede værdi af alle produkter opbevaret på et lager. Hvert produkt har et navn, en mængde og en pris. Funktionen skal iterere gennem arrayet af produkter og beregne summen af quantity * price for alle varer.

  1. Inde i funktionen calculateWarehouseTotal oprettes en variabel total, som initialiseres til 0.0f.
  2. Brug en for-løkke til at iterere fra indeks 0 til n.
  3. For hvert produkt multipliceres quantity med price, og resultatet lægges til total.
  4. Returnér den endelige værdi af total som lagerets samlede omkostning.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookArrayer med Structs

Stryg for at vise menuen

At oprette et array af strukturer er ikke anderledes end at oprette et array med andre datatyper.

Adgang til elementerne i et sådant array foregår på samme måde som for almindelige arrays via indekser.

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

struct Person people[2];

Som et eksempel kan vi oprette et array af strukturer, der gemmer information om en person.

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; }

Hvert element i people-arrayet repræsenterer en separat Person-struktur. Felterne for en bestemt person kan tilgås ved hjælp af array-indekset, for eksempel: people[0].name eller people[1].age.

Derefter gennemløbes hele arrayet med en for-løkke, og informationen om hver person udskrives på skærmen.

Ved at bruge arrays af strukturer kan du gemme flere objekter af samme type ét sted og nemt tilgå dem via indeks, hvilket især er nyttigt ved arbejde med store datasæt.

Opgave

Swipe to start coding

Implementér en funktion calculateWarehouseTotal, der beregner den samlede værdi af alle produkter opbevaret på et lager. Hvert produkt har et navn, en mængde og en pris. Funktionen skal iterere gennem arrayet af produkter og beregne summen af quantity * price for alle varer.

  1. Inde i funktionen calculateWarehouseTotal oprettes en variabel total, som initialiseres til 0.0f.
  2. Brug en for-løkke til at iterere fra indeks 0 til n.
  3. For hvert produkt multipliceres quantity med price, og resultatet lægges til total.
  4. Returnér den endelige værdi af total som lagerets samlede omkostning.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

some-alt