Arrayer 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
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.
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.
- Inde i funktionen
calculateWarehouseTotaloprettes en variabeltotal, som initialiseres til0.0f. - Brug en
for-løkke til at iterere fra indeks0tiln. - For hvert produkt multipliceres
quantitymedprice, og resultatet lægges tiltotal. - Returnér den endelige værdi af
totalsom lagerets samlede omkostning.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.35
Arrayer 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
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.
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.
- Inde i funktionen
calculateWarehouseTotaloprettes en variabeltotal, som initialiseres til0.0f. - Brug en
for-løkke til at iterere fra indeks0tiln. - For hvert produkt multipliceres
quantitymedprice, og resultatet lægges tiltotal. - Returnér den endelige værdi af
totalsom lagerets samlede omkostning.
Løsning
Tak for dine kommentarer!
single