Struct met Arrays en Andere Structs
In sommige structuren is het noodzakelijk om een array van geneste structuren te gebruiken wanneer één object meerdere gerelateerde subobjecten bevat. Bijvoorbeeld, als een student meerdere vakken kan volgen, is het logisch om de vakken als een array van structuren binnen de Student-structuur weer te geven.
Voorbeeldsyntaxis:
OuterStruct.NestedStruct[1].NestedField;
Om een element van de array van geneste structuren te benaderen, verwijs je eerst naar de buitenste structuur, gebruik je vervolgens een index om het gewenste element van de array te selecteren, en krijg je tenslotte toegang tot een specifiek veld van dat element.
Praktisch Voorbeeld
Stel je voor dat elke student een naam, leeftijd en een reeks vakken heeft. Elk vak bevat de titel, docent en het aantal studiepunten.
main.c
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <stdio.h> #include <string.h> struct Course { char name[50]; char instructor[50]; int credits; }; struct Student { char name[50]; int age; struct Course courses[3]; // array of nested structures }; int main() { struct Student student; // Initialize student strcpy(student.name, "Alice Johnson"); student.age = 20; // Initialize courses strcpy(student.courses[0].name, "Mathematics"); strcpy(student.courses[0].instructor, "Dr. Smith"); student.courses[0].credits = 4; strcpy(student.courses[1].name, "Computer Science"); strcpy(student.courses[1].instructor, "Prof. Brown"); student.courses[1].credits = 3; strcpy(student.courses[2].name, "History"); strcpy(student.courses[2].instructor, "Dr. Green"); student.courses[2].credits = 2; // Display information printf("Student: %s\n", student.name); printf("Age: %d\n", student.age); printf("Courses:\n"); for (int i = 0; i < 3; i++) { printf(" Course %d: %s, Instructor: %s, Credits: %d\n", i + 1, student.courses[i].name, student.courses[i].instructor, student.courses[i].credits); } // Example of accessing a specific nested field printf("\nInstructor of the second course: %s\n", student.courses[1].instructor); return 0; }
In dit voorbeeld heeft de structuur Student een courses-array met drie elementen van het type Course. Elke course heeft een eigen titel, docent en aantal studiepunten. Om een specifieke course te benaderen, gebruik je de array-index en de punt-operator: student.courses[1].instructor.
Het gebruik van arrays met geneste structuren is nuttig voor het representeren van objecten met herhaalde subobjecten, zoals studenten met courses, winkels met producten of boeken met auteurs.
Swipe to start coding
De student wordt weergegeven door een structuur Student die een array met vaste grootte van geneste structuren Course bevat. Elke cursus heeft een naam, een docent en een aantal studiepunten. De functie moet door alle cursussen itereren en de studiepunten optellen.
Implementeer een functie calculateTotalCredits met het retourtype int.
- Maak binnen de functie een
int-variabeletotalen initialiseer deze op0. - Gebruik een
for-lus om te itereren van0tot het aantal cursussen (3). - Voor elke cursus, verkrijg het aantal
creditsen tel dit op bijtotal. - Retourneer de uiteindelijke waarde van
total.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you show me a code example of how to define these nested structures?
How do I access or modify a specific course for a student?
What are some other real-world scenarios where nested structure arrays are useful?
Geweldig!
Completion tarief verbeterd naar 4.35
Struct met Arrays en Andere Structs
Veeg om het menu te tonen
In sommige structuren is het noodzakelijk om een array van geneste structuren te gebruiken wanneer één object meerdere gerelateerde subobjecten bevat. Bijvoorbeeld, als een student meerdere vakken kan volgen, is het logisch om de vakken als een array van structuren binnen de Student-structuur weer te geven.
Voorbeeldsyntaxis:
OuterStruct.NestedStruct[1].NestedField;
Om een element van de array van geneste structuren te benaderen, verwijs je eerst naar de buitenste structuur, gebruik je vervolgens een index om het gewenste element van de array te selecteren, en krijg je tenslotte toegang tot een specifiek veld van dat element.
Praktisch Voorbeeld
Stel je voor dat elke student een naam, leeftijd en een reeks vakken heeft. Elk vak bevat de titel, docent en het aantal studiepunten.
main.c
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <stdio.h> #include <string.h> struct Course { char name[50]; char instructor[50]; int credits; }; struct Student { char name[50]; int age; struct Course courses[3]; // array of nested structures }; int main() { struct Student student; // Initialize student strcpy(student.name, "Alice Johnson"); student.age = 20; // Initialize courses strcpy(student.courses[0].name, "Mathematics"); strcpy(student.courses[0].instructor, "Dr. Smith"); student.courses[0].credits = 4; strcpy(student.courses[1].name, "Computer Science"); strcpy(student.courses[1].instructor, "Prof. Brown"); student.courses[1].credits = 3; strcpy(student.courses[2].name, "History"); strcpy(student.courses[2].instructor, "Dr. Green"); student.courses[2].credits = 2; // Display information printf("Student: %s\n", student.name); printf("Age: %d\n", student.age); printf("Courses:\n"); for (int i = 0; i < 3; i++) { printf(" Course %d: %s, Instructor: %s, Credits: %d\n", i + 1, student.courses[i].name, student.courses[i].instructor, student.courses[i].credits); } // Example of accessing a specific nested field printf("\nInstructor of the second course: %s\n", student.courses[1].instructor); return 0; }
In dit voorbeeld heeft de structuur Student een courses-array met drie elementen van het type Course. Elke course heeft een eigen titel, docent en aantal studiepunten. Om een specifieke course te benaderen, gebruik je de array-index en de punt-operator: student.courses[1].instructor.
Het gebruik van arrays met geneste structuren is nuttig voor het representeren van objecten met herhaalde subobjecten, zoals studenten met courses, winkels met producten of boeken met auteurs.
Swipe to start coding
De student wordt weergegeven door een structuur Student die een array met vaste grootte van geneste structuren Course bevat. Elke cursus heeft een naam, een docent en een aantal studiepunten. De functie moet door alle cursussen itereren en de studiepunten optellen.
Implementeer een functie calculateTotalCredits met het retourtype int.
- Maak binnen de functie een
int-variabeletotalen initialiseer deze op0. - Gebruik een
for-lus om te itereren van0tot het aantal cursussen (3). - Voor elke cursus, verkrijg het aantal
creditsen tel dit op bijtotal. - Retourneer de uiteindelijke waarde van
total.
Oplossing
Bedankt voor je feedback!
single