Struct med Arrayer og Andre Structer
I noen strukturer er det nødvendig å bruke et array av nestede strukturer når ett objekt inneholder flere relaterte delobjekter. For eksempel, hvis en student kan ta flere kurs, er det hensiktsmessig å representere kursene som et array av strukturer inne i Student-strukturen.
Eksempelsyntaks:
OuterStruct.NestedStruct[1].NestedField;
For å få tilgang til et element i det nestede struktur-arrayet, refererer du først til den ytre strukturen, bruker deretter en indeks for å velge ønsket element i arrayet, og til slutt får du tilgang til et spesifikt felt i dette elementet.
Praktisk eksempel
Tenk deg at hver student har et navn, en alder og et sett med kurs. Hvert kurs inneholder tittel, instruktør og antall studiepoeng.
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; }
I dette eksempelet har Student-strukturen et courses-array med tre elementer av typen Course. Hvert kurs har sin egen tittel, instruktør og antall studiepoeng. For å få tilgang til et bestemt kurs, bruk array-indeksen og punktumoperatoren: student.courses[1].instructor.
Å bruke arrayer av nestede strukturer er nyttig for å representere objekter med gjentatte underobjekter, som studenter med kurs, butikker med produkter eller bøker med forfattere.
Swipe to start coding
Studenten er representert av en struktur Student som inneholder et fast størrelse-array av nestede strukturer Course. Hver kurs har et navn, en instruktør og et antall studiepoeng. Funksjonen skal iterere gjennom alle kursene og summere studiepoengene.
Implementer en funksjon calculateTotalCredits med returtype int.
- Opprett en
int-variabeltotalinni funksjonen og initialiser den til0. - Bruk en
for-løkke for å iterere fra0til antall kurs (3). - For hvert kurs, hent verdien av
creditsog legg den tiltotal. - Returner den endelige verdien av
total.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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?
Fantastisk!
Completion rate forbedret til 4.35
Struct med Arrayer og Andre Structer
Sveip for å vise menyen
I noen strukturer er det nødvendig å bruke et array av nestede strukturer når ett objekt inneholder flere relaterte delobjekter. For eksempel, hvis en student kan ta flere kurs, er det hensiktsmessig å representere kursene som et array av strukturer inne i Student-strukturen.
Eksempelsyntaks:
OuterStruct.NestedStruct[1].NestedField;
For å få tilgang til et element i det nestede struktur-arrayet, refererer du først til den ytre strukturen, bruker deretter en indeks for å velge ønsket element i arrayet, og til slutt får du tilgang til et spesifikt felt i dette elementet.
Praktisk eksempel
Tenk deg at hver student har et navn, en alder og et sett med kurs. Hvert kurs inneholder tittel, instruktør og antall studiepoeng.
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; }
I dette eksempelet har Student-strukturen et courses-array med tre elementer av typen Course. Hvert kurs har sin egen tittel, instruktør og antall studiepoeng. For å få tilgang til et bestemt kurs, bruk array-indeksen og punktumoperatoren: student.courses[1].instructor.
Å bruke arrayer av nestede strukturer er nyttig for å representere objekter med gjentatte underobjekter, som studenter med kurs, butikker med produkter eller bøker med forfattere.
Swipe to start coding
Studenten er representert av en struktur Student som inneholder et fast størrelse-array av nestede strukturer Course. Hver kurs har et navn, en instruktør og et antall studiepoeng. Funksjonen skal iterere gjennom alle kursene og summere studiepoengene.
Implementer en funksjon calculateTotalCredits med returtype int.
- Opprett en
int-variabeltotalinni funksjonen og initialiser den til0. - Bruk en
for-løkke for å iterere fra0til antall kurs (3). - For hvert kurs, hent verdien av
creditsog legg den tiltotal. - Returner den endelige verdien av
total.
Løsning
Takk for tilbakemeldingene dine!
single